Programming [Python] (411) 썸네일형 리스트형 #360 백준 파이썬 [13300] 방 배정 https://www.acmicpc.net/problem/13300 PYTHON CODE import math N, K = map(int, input().split()) student = [[0] * 7 for _ in range(3)] #성별 / 학년별 for _ in range(N): S, Y = map(int, input().split()) student[S][Y] += 1 room = 0 for i in student: for j in i: room += math.ceil(j / K) print(room) #359 백준 파이썬 [2605] 줄 세우기 https://www.acmicpc.net/problem/2605 PYTHON CODE from collections import deque #회전큐로 구현 N = int(input()) student = list(map(int, input().split())) result = deque() for std, move in enumerate(student): result.rotate(move) #오른쪽으로 돌림 result.append(std + 1) #사람 추가 result.rotate(-move) #왼쪽으로 원상복구 print(*result) #358 백준 파이썬 [2669] 직사각형 네개의 합집합의 면적 구하기 https://www.acmicpc.net/problem/2669 PYTHON CODE paper = [[0 for _ in range(101)] for _ in range(101)] for _ in range(4): x1, y1, x2, y2 = map(int, input().split()) #사각형 부분만 1로 바꾸어줌 for i in range(x1, x2): for j in range(y1, y2): paper[i][j] = 1 answer = 0 for row in paper: answer += sum(row) print(answer) #357 백준 파이썬 [10026] 적록색약 - BFS https://www.acmicpc.net/problem/10026 SOLUTION BFS(너비우선탐색 그래프)를 통해 쉽게 해결 가능하다. (참조: https://claude-u.tistory.com/211) BFS를 기본인 상태에서 한 번, G를 R로 바꾼 상태에서 한 번 실행시켜준다. PYTHON CODE from collections import deque #큐를 빨리 돌리기위함 #BFS함수 정의 def bfs(i, j): queue = deque() queue.append([i, j]) color = grid[i][j] #하나의 컬러만 while queue: [i, j] = queue.popleft() visited[i][j] = True if i + 1 < N and [i+1, j] not i.. #356 백준 파이썬 [10815] 숫자 카드 https://www.acmicpc.net/problem/10815 SOLUTION 분류되어 있는 이분탐색도 좋지만 dict 파일 안에 숫자를 더하여 key를 기반으로 찾는 방법을 선택했다. M의 숫자가 더 크다면 dict 또한 이분 탐색으로 하는 게 더 편하겠지만 충분히 풀 수 있음으로 사용하지 않았다. PYTHON CODE N = int(input()) N_list = list(map(int, input().split())) M = int(input()) M_list = list(map(int, input().split())) N_count = {} for n in N_list: N_count[n] = True for m in M_list: if m in N_count: print(1, end = '.. #355 백준 파이썬 [11444] 피보나치 수 7 https://www.acmicpc.net/problem/11444 SOLUTION 행렬을 이용한 방법으로 빠르게 피보나치 수를 구해주었다. 설명하기 너무 길다... 너무나도 자세하고 잘 설명해준 분들이 많기에 이 것들로 대체한다. 백준님과(https://www.acmicpc.net/blog/view/28) Parkito님(https://shoark7.github.io/programming/algorithm/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-5%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95.html) 이 굉.. #354 백준 파이썬 [2749] 피보나치 수 3 https://www.acmicpc.net/problem/2749 SOLUTION 행렬을 이용한 방법으로 빠르게 피보나치 수를 구해주었다. 설명하기 너무 길다... 백준님과(https://www.acmicpc.net/blog/view/28) Parkito님(https://shoark7.github.io/programming/algorithm/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-5%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95.html) 이 굉장히 잘 설명해주셨다. 따라해보자. 요약하자면 원리는 다음과 같다. .. #353 백준 파이썬 [1850] 최대공약수 https://www.acmicpc.net/problem/1850 SOLUTION 무엇인가 규칙은 있어보인다. 유클리드 호제법으로 때려박으면 메모리 초과가 난다. (입력되는 수는 최대 2^63이다!) 하지만 어떤 과정을 거쳐서 되는지 모르겠다면, 유클리드 호제법으로 11111111~ 과 111111111~이 어떤 연관성을 가지는지 알아보자. 우리는 프로그래머다 def gcd(x,y): mod = x % y while mod >0: x = y y = mod mod = x % y return y for A in range(1, 30): for B in range(1, 30): C = int('1' * A) D = int('1' * B) print(A, B, len(str(gcd(C, D)))) 이런식으로 구.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 52 다음