BOJ/Python 176

백준 7576번 토마토 파이썬 BFS

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 내 답안 from collections import deque import sys input = sys.stdin.readline M, N = map(int, input().rstrip().split()) tomato = [list(map(int, input().rstrip().split())) for i in range(N)] date = [[0] * M for _ in rang..

BOJ/Python 2022.03.30

백준 1259번 팰린드롬수 파이썬

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 내 답안 import sys input = sys.stdin.readline while True: x = input().rstrip() if x == '0': break else: cnt = 0 l = len(x) // 2 for i in range(l): if x[i] == x[-(i + 1)]: # 순차적으로 탐색 cnt += 1 if l == cnt: print('yes') else: print('no') ..

BOJ/Python 2022.03.29

백준 2292번 벌집 파이썬

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N = int(input()) if N == 1: print(1) else: for i in range(1, N): if 3*(i**2) - 3*i + 2

BOJ/Python 2022.03.28

백준 2164번 카드2 파이썬

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 내 답안 from collections import deque import sys N = int(sys.stdin.readline().rstrip()) q = deque([i for i in range(1, N + 1)]) while (len(q) != 1): q.popleft() if len(q) == 1: break else: q.append(q.popleft()) print(q[0]) 파이썬..

BOJ/Python 2022.03.25

백준 10816번 숫자 카드 2 파이썬

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 내 답안 import sys from bisect import bisect_left, bisect_right input = sys.stdin.readline N = int(input()) N_list = sorted(list(map(int, input().split()))) M = int(input()) M_list = list(map(int, input().sp..

BOJ/Python 2022.03.23

백준 11055번 가장 큰 증가 부분 수열 파이썬

https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N = int(input()) A = list(map(int, input().split())) dp = [0] * N dp[0] = A[0] for i in range(1, N): for j in range(i): if A[i] > A[j]: dp[i] = max..

BOJ/Python 2022.03.22

백준 2631번 줄세우기 파이썬

https://www.acmicpc.net/problem/2631 2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N = int(input()) A = [int(input()) for i in [0]*N] dp = [1] * N for i in range(1, N): for j in range(i): if A[i] > A[j]: dp[i] = max(dp[i], dp[j]+1) print(N-max(dp)) 가장 긴 증가하는 부분 수열의 원..

BOJ/Python 2022.03.21

백준 1620번 나는야 포켓몬 마스터 이다솜 파이썬

https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N, M = map(int, input().rstrip().split()) x = [input().rstrip() for i in range(N)] y = dict() for i in range(N): y[x[i]] = str(i + 1) z = dict(map(reversed, y.items..

BOJ/Python 2022.03.20

백준 17202번 핸드폰 번호 궁합 파이썬

https://www.acmicpc.net/problem/17202 17202번: 핸드폰 번호 궁합 어린시절 다들 한 번씩은 이름으로 궁합을 본 적이 있을 것이다. 이것과 비슷한 방식으로 중앙대학교에는 핸드폰 번호 궁합을 보는 것이 유행이라고 한다. 핸드폰 번호 궁합을 보기 위해서는 www.acmicpc.net 내 코드 x = list(input()) y = list(input()) temp = [] answer = '' for i in range(8): answer += x[i] + y[i] while len(answer) != 2: for i in range(len(answer) - 1): temp.append(str((int(answer[i]) + int(answer[i + 1])) % 10)) a..

BOJ/Python 2022.03.19

백준 1764번 듣보잡 파이썬

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 내 답안 import sys input = sys.stdin.readline N, M = map(int, input().rstrip().split()) x = set([input().rstrip() for i in range(N)]) y = set([input().rstrip() for i in range(M)]) z = y & x print(len(z)) for i in sorted(list(..

BOJ/Python 2022.03.18