
백준 알고리즘 파이썬(Python) 1449번 수리공 항승
2021. 7. 6. 10:19
Algorithm
테이프를 붙일 때 시작 지점에서 0.5 왼쪽에서 시작해서 테이프의 길이 안에 그다음 새는 곳이 포함되어 있다면 count를 올리지 않고 , 만약 포함되어 있지 않다면 새롭게 테이프의 시작 지점을 지정해 준 뒤 count의 합을 구하면 되는 문제이다. import sys input = sys.stdin.readline N, L = map(int,input().split()) arr = list(map(int,input().split())) arr.sort() #오름차순으로 정렬한다. tape = 1 start = arr[0] end = start + L - 0.5 #테이프의 시작이 start보다 0.5작아야 한다 for i in arr: if end >= i: continue else: tape += 1 ..

백준 알고리즘 파이썬(Python) 16162번 가희와 3단 고음
2021. 6. 12. 01:05
Algorithm
간단한 문제다 배열에서 첫 음인 A를 찾아주고 그때부터 등차가 D인 수열로 배열에서 탐색해 찾을때마다 cnt값을 하나씩 올려주면 된다 import sys N, A, D = map(int,sys.stdin.readline().split()) arr = list(map(int,sys.stdin.readline().split())) cnt = 0 x = 0 for i in range(N): if arr[i] == A + (x*D): #등차가 D인 수열로 숫자 올려주기 cnt += 1 x += 1 print(cnt)

백준 알고리즘 파이썬(Python) 13413번 오셀로 재배치
2021. 6. 8. 14:37
Algorithm
이 문제의 핵심은 초기 상태와 목표 상태의 배열을 for문으로 비교해 만약 원소가 다르다면 그것들을 새로운 배열로 만드는 것이다 그렇게 새로 만든 배열을 arr이라 한다면 그 배열에 W가 많은지 B가 많은 지를 비교해 그 숫자를 세어주면 된다. 여기서 주의할 점은 새로운 테스트 데이터를 만들 때 arr 리스트를 초기화해주어야 한다. n = int(input()) array_1 = [] array_2 = [] ans = 0 arr = [] ans_fin = [] for i in range(n): k = int(input()) array_1 = list(input()) array_2 = list(input()) for j in range(k): if array_1[j] != array_2[j]: arr.ap..

백준 알고리즘 파이썬(Python) 19941번 햄버거분배
2021. 6. 3. 13:44
Algorithm
이 문제의 핵심은 사람은 K만큼 "왼쪽"에 떨어져 있는 햄버거를 먹는 것이다. 사람이 만약 맨 오른쪽에 있다면 그 전 사람이 본인의 오른쪽 햄버거를 먹었다면 가장 오른쪽 사람이 먹을 수 있지만 못 먹는 경우가 생길 수 있기 때문이다. 그리고 앞으로 input을 쓸 때 시간을 줄기이 위해 import sys 를 통해 input = sys.stidn.readline 으로 쓰는 습관을 들여야겠다. import sys input = sys.stdin.readline n, k = map(int,input().split()) S = input().rstrip() eat_list = list(S) cnt = 0 for i in range(len(eat_list)): if eat_list[i] == "P": #만약 사..

백준 알고리즘 파이썬(Python) 2847번 게임을 만든 동준이
2021. 6. 2. 01:20
Algorithm
이 문제의 핵심은 입력받은 리스트를 reverse로 거꾸로 배열하는 것이다. 처음에 이 생각을 하지 못했을 때는 뒤에 숫자와 같아지는 경우 문제를 풀기 곤란했는데 배열을 거꾸로 뒤집으니 간단히 해결되었다. n = int(input()) level_list = [] for i in range(n): level = int(input()) level_list.append(level) level_list.reverse() #리스트들을 역순서로 배치 cnt = 0 #다음 숫자와 비교해줄 변수 value = 0 #빼주는 숫자 변수 result = 0 #빼주는 숫자를 누적해 줄 변수 for i in range(len(level_list)): if i == 0: cnt = level_list[0] #cnt 에 초기값 ..