백준 알고리즘 파이썬(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 에 초기값 ..
백준 알고리즘 파이썬(Python) 20365번 블로그2
2021. 6. 1. 01:11
Algorithm
이 문제의 핵심은 cnt 즉 카운트 값을 2개 지정한다는 것이다. 카운트 값을 2개 지정하는 이유는 내가 가장 먼저 파란색으로 다 칠할지, 빨간색으로 다 칠할지를 구분해서 카운트를 세주는 것이다. 그 뒤에 연속해서 다른색이 나오는 경우만 조심해서 풀어주면 된다. n = int(input()) arr = list(input()) arr.append('A') # line 12와 line 21의 arr[i+1] 에서 list의 범위를 벗어나는 오류를 해결하기 위한 방법 cnt = [1] * 2 #파란색을 먼저 칠할 경우와 빨간색을 먼저 칠할 경우의 수를 다 파악하기 위해 cnt를 2개 지정 for i in range(n): #먼저 다 파란색으로 칠했다고 가정한 경우 if arr[i] == 'B': contin..
백준 알고리즘 파이썬(Python) 20300번 서강근육맨
2021. 5. 27. 12:26
Algorithm
리스트를 입력받아 내림차순으로 정리한 것과 오름차순으로 정리한 것의 각 요소들의 합중 최댓값이 답이다. n이 짝수일때는 크게 문제가 되지 않는데 n이 홀수라면 생각을 좀 해야 한다. 내가 생각한 방법은 n이 홀수라면 운동기구를 하루만 사용하는 날 근손실이 최대로 일어나는 기구를 사용해야 한다. 이번 코드에는 zip이라는 함수를 처음으로 사용해보았다. n = int(input()) muscle_re = list(map(int,input().split())) muscle_re.sort(reverse = True) # 내림차순으로 정리 muscle = sorted(muscle_re, reverse = False) # 오름차순으로 정리 if n%2 == 0: #n이 짝수일때 result = 0 day_muscl..