Problem Solving/BOJ(36)
-
BOJ 1018. 체스판 다시 칠하기 (Python)
BOJ 1018. 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 별다른 알고리즘 생각 할 필요 없이 브루트 포스로 풀면 된다. W로 시작하는 보드, B로 시작하는 보드를 미리 다 만들어 놓고 비교해도 되지만 난 그렇게 풀지는 않았다. for x in range(N - 8 + 1): for y in range(M - 8 + 1): W_start = 0 B_start = 0 보드에서 8*8 체스판을 고르는 부분이다..
2021.02.10 -
BOJ 11050. 이항계수 1 (Python)
BOJ 11050. 이항계수 1 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제 풀이 이항계수 위키백과 조합론에서, 이항 계수(二項係數, 영어: binomial coefficient)는 이항식을 이항 정리로 전개했을 때 각 항의 계수이며, 주어진 크기의 (순서 없는) 조합의 가짓수이다. 고등학교때 배웠던 조합 구하는 공식인 이것으로 구하면 되고, 재귀를 이용해서 풀었다. 소스코드 def factorial(n): if n == 1 or n == 0: return 1 return n*factorial(n-1) N, K..
2021.02.10 -
BOJ 2798. 블랙잭 (Python)
BOJ 2798. 블랙잭 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net Logic 포문을 세번 돌려서 브루트-포스로도 풀 수는 있지만 효율적이지 않으니 패스. 나는 투포인터 로 풀었다. 입력받은 nums리스트를 오름차순으로 정렬한다.(중요한 작업) 0~N-2 까지 for문을 돌린다. left포인터는 i번째 바로 다음, right포인터는 끝을 가리킨다. left < right인 동안 sum이 M보다 크면 righ..
2021.02.10 -
BOJ 1259. 팰린드롬 수 (Python)
BOJ 1259. 팰린드롬 수 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net Logic 팰린드롬이란 앞 뒤가 같은 것이다. 토마토, 기러기 같은. 앞에서부터 뽑고, 뒤에서부터 뽑은것이 끝까지 일치한다면 이것은 팰린드롬 수 일것이다. 한번이라도 일치하지 않는다면 그것은 팰린드롬 수가 아니다. 0이 나올때까지 While문을 돌며 input한것을 deque에 저장한다. 이때 그냥 list를 사용하지 않고 덱을 쓰는 이유는, 파이썬의 리스트에서 .pop(0)을하면 ..
2021.02.10 -
BOJ 10250. ACM 호텔 (Python)
BOJ 10250. ACM 호텔 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net Logic 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다. 엘리베이터로 이동하는 거리는 무시한다고 했다. 그러면 방이 배정되는 순서는 101, 201, 301, 401,,, 다음은 102, 2..
2021.02.10 -
BOJ 1085. 직사각형에서 탈출 (Python)
BOJ 1085. 직사각형에서 탈출 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net Solution x, y, w, h = map(int, input().split()) print(min(w-x, h-y, x, y)) import sys x, y, w, h = map(int, sys.stdin.readline().split()) print(min(w-x, h-y, x, y)) 문득 sys.stdin.readline()을 사용하면 input()보다 더 빠른 속도를 낼 수 있다고 한게 생각나서 공부하..
2021.02.09