Python 232

[백준 11559번] Puyo Puyo

https://www.acmicpc.net/problem/11559import sysfrom collections import dequeinput = sys.stdin.readline# 필드에 여러 가지 색깔의 뿌요를 놓는다# 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다.# 뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다# 이때 1연쇄가 시작된다.# 뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.# 아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마..

[백준 12891번] DNA 비밀번호

https://www.acmicpc.net/problem/12891import sysinput = sys.stdin.readline# DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열# 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용# 부분문자열에서 등장하는 문자의 개수가 특정 개수 이상이여야 비밀번호로 사용할 수 있다# 단, 부분문자열이 등장하는 위치가 다르다면 부분문자열이 같다고 하더라도 다른 문자열로 취급한다.s_length, p_length = map(int,input().split())string = input().rstrip()a, c, g, t = map(int,input().split())dictionary =..

[백준 2531번] 회전 초밥

https://www.acmicpc.net/problem/2531import sysfrom collections import deque# 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다# 1. 벨트의 임의의 한 위치부터 k개의 접시를 연속해서 먹을 경우 할인된 정액 가격으로 제공# 2. 각 고객에게 초밥의 종류 하나가 쓰인 쿠폰을 발행하고, 1번 행사에 참가할 경우 이 쿠폰에 적혀진 종류의 초밥 하나를 추가로 무료로 제공# (만약 이 번호에 적혀진 초밥이 현재 벨트 위에 없을 경우, 요리사가 새로 만들어 손님에게 제공)input = sys.stdin.readlinen, d, k, c = map(int,input().split()..

[백준 21921번] 블로그

https://www.acmicpc.net/problem/21921import sys # X일 동안 가장 많이 들어온 방문자 수와 기간 # 첫째 줄에 X일 동안 가장 많이 들어온 방문자 수를 출력 # 만약 최대 방문자 수가 0명이라면 SAD를 출력 # 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력 n, x = map(int,input().split()) input = sys.stdin.readline visit_counts = list(map(int,input().split())) # 1. 시간복잡도 O(N^2) 풀이 # answer = 0 # count = 0 # for i, value in enumerate(visit_counts): # if 0 max_value: m..

[백준 2559번] 수열

https://www.acmicpc.net/problem/2559import sys input = sys.stdin.readline n, k = map(int,input().split()) temp_list = list(map(int,input().split())) value = sum(temp_list[:k]) answer = value for i in range(k,n): value -= temp_list[i-k] value += temp_list[i] answer = max(answer,value) print(answer)이번 문제는 N일 동안 측정된 온도에서 연속 K일간 측정했을 때의 최댓값을 구하는 문제이다. 해당 문제는 단순히 완전탐색으로 풀게되면 O(N*K)의 시간복잡도가 나오게 되는데, N..

[소프티어 6275번] 로봇이 지나간 경로(HSAT 1회 정기 코딩 인증평가 기출)

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readlinedx, dy = [-1,1,0,0], [0,0,-1,1]# L : 왼쪽으로 90도 회전# R : 오른쪽으로 90도 회전# A : 로봇이 바라보는 방향으로 2칸 전진(범위를 벗어나면 수행X)# 같은 칸을 2번 이상 방문하지 못하도록 명령# 출발지점을 포함한 로봇이 방문한 모든 칸을 지도에 표시# 로봇이 지도에 사수에 표시한 모든 칸들만을 방문하도록 조작# 1. 처음 로봇을 어떤 칸에, 어떤 방향으로 두어야 하는가 ?# 2. 이후 로봇에 어떤 명령어를 순서대로 입력해야 하는가 ?# 입력하는 명령어의 개수를 최소화 했을때 [첫번째 로봇의 위치 좌표], [방향], [명령어]h, w..

Algorithm/DFS 2024.06.27

[소프티어 6281번] 동계 테스트 시점 예측

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysfrom collections import dequeinput = sys.stdin.readline# 아침에 출근해보면 테스트 차량들 위에 눈얼음이 생겨있음# 커다란 얼음이 녹고난 뒤에 테스트가 가능# 차량마다 당일의 테스트 가능 시점을 알기 위한 예측 프로그램 제작# N x M 크기의 격자 위에 눈 얼음의 모양을 작은 정사각형들이 집합되어 있는 모양으로 변환# 아침이 되면 기온이 상승하여 천천히 녹는다# 얼음은 상하좌우 중에서 적어도 2변 이상이 외부와 접촉했을 때 정확히 1시간만에 녹음# 얼음 내부에 있는 공간은 얼음 외부 공기와 접촉하지 않는 걸로 가정# 주어진 얼음이 모두 녹아서 사라지는데 걸리는 시간n, m =..

Algorithm/BFS 2024.06.27

[소프티어 6273번] 택배 마스터 광우

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai import sysfrom itertools import permutationsinput = sys.stdin.readline# 레일의 순서를 조작해서 최소한의 무게만 들 수 있게 일을 함# N개의 레일, 각 레일은 Ni 무게 전용 레일로 주어진다.(같은 무게의 레일 X)# 레일의 순서가 정해지면 택배 바구니 무게(M)를 넘어가기 전까지 택배 바구니에 택배를 담아 들고 옮겨야 함# 레일 순서대로 택배를 담되, 바구니 무게를 초과하지 않은 만큼 담아서 이동하게 되면 1번 일한 것으로 쳐줌# (단, 택배는 순서대로 담아야 하므로 레일의 순서를 건너 뛸 순 없다)# 총 k번 일을 하는데 최소한의 무게로 일을 할 수 있도록 하자n, m, k ..