공부하기/백준 500

[Python] 백준 풀기 1439 - 뒤집기

파이썬 백준 1439번 실버 5 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 보기 분류: 문자열, 그리디 알고리즘 문제 풀기 0 과 1 조합의 숫자들을 리스트에 각각 입력받는다. 숫자들의 맨 앞과 맨 끝의 수가 같은지 확인을 한다. 만약, 같다면 그 반대되는 수를 기준으로 하여 check 에 저장해 둔다. 이때, count 는 0 으로 시작. 숫자들의 맨 앞과 맨 끝의 수가 다르다면, 첫 수와 반대되는 수를 check 에 저장한다. 이..

공부하기/백준 2022.12.21

[Python] 백준 풀기 11656 - 접미사 배열

파이썬 백준 11656번 실버 4 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 보기 분류: 문자열, 정렬 문제 풀기 생성된 접미사를 저장할 리스트 s_ls 생성하고 첫 문자 s 를 저장한다. s 의 문자 길이 - 1 만큼 for loop 을 실행하고, 이때 문자의 맨 앞자리를 하나씩 제거하고 이를 리스트에 누적 시킨다. 사전순으로 정렬하기 위해 sort() 함수를 이용하여 정렬을 한 후, 순서대로 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSuffix..

공부하기/백준 2022.12.20

[Python] 백준 풀기 2748 - 피보나치 수 2

파이썬 백준 2748번 브론즈 1 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 보기 분류: 수학, 다이나믹 프로그래밍 문제 풀기 n 번째 피보나치 수를 저장하기 위해 n + 1 개의 빈 리스트를 준비한다. 리스트 첫번째와 두 번째 값은 0 과 1 로 초기화한다. index 가 3 인 세번째 피보나치 수는 문제에서 제시한 함수를 따르기 때문에 아래 코드와 같이 작성되었다. num_ls[i] = num_..

공부하기/백준 2022.12.19

[Python] 백준 풀기 1358 - 하키

파이썬 백준 1358번 실버 4 https://www.acmicpc.net/problem/1358 1358번: 하키 첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부 www.acmicpc.net 문제 보기 분류: 기하학 문제 풀기 아이스 링크를 왼쪽 반원, 중앙 직사각형, 오른쪽 반원 세 부분으로 나누어 판별한다. 반원 구간에 대해서는 좌표 위의 원과 점 사이의 관계를 이용한다. 중심이 (a, b) 이고 반지름이 r 인 원의 방정식이 주어졌을 때, 점 (x, y) 위치는 각각의 식을 만족한다. 1. (x, y) 가 원의 내부에 있을 ..

공부하기/백준 2022.12.18

[Python] 백준 풀기 2775 - 부녀회장이 될테야

파이썬 백준 2775번 브론즈 1 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 문제 보기 분류: 수학, 구현, 다이나믹 프로그램 문제 풀기 1층 1호를 시작으로 해당 위치의 집의 사람 수를 구한다. 해당 위치의 인원을 구하기 위해서는 그 이전 호수의 인원과 그 이전 층의 인원이 먼저 구해져 있어야 한다. 따라서, 1층 1호, 1층 2호, ... , 2층 1호, 2층 2호, ... , ?층 ?호 순서로 찾아 나간다. 작성 코드는 해당 층 호수의 +1 개 만큼 빈 리스트를 생성한다. ..

공부하기/백준 2022.12.17

[Python] 백준 풀기 11497 - 통나무 건너뛰기

파이썬 백준 11497번 실버 1 https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 문제 보기 분류: 그리디 알고리즘, 정렬 문제 풀기 아이디어는 위와 같다. 오름차순 또는 내림차순 정렬된 리스트에서 가장 작은 수를 기준으로 하여 왼쪽과 오른쪽을 번갈아가며 순차적으로 숫자를 채워나간다. 작성된 코드는 주어진 통나무 리스트를 오름차순 정렬한다. 리스트의 가장 작은 값을 기준으로 잡고 deque() 를 이용하여 오른쪽 append(), 왼쪽 app..

공부하기/백준 2022.12.16

[Python] 백준 풀기 1259 - 팰린드롬수

파이썬 백준 1259번 브론즈 1 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 숫자의 각자리를 deque() 를 이용하여 하나하나 입력 저장한다. 입력으로 한자리 수가 들어오면 바로 "yes" 를 출력하여 끝내고, 그렇지 않으면 deque 의 성질을 이용하여 popleft() 와 pop() 으로 리스트 양 끝의 숫자를 하나씩 빼어 같은지를 비교한다. 만약, while loop 을 도는 동안 같지 않으면 "no" 를..

공부하기/백준 2022.12.15

[Python] 백준 풀기 10824 - 네 수

파이썬 백준 10824번 브론즈 3 https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 문제 보기 분류: 수학, 구현, 문자열, 사칙연산 문제 풀기 네 개의 수를 각각 입력 받아 함수 str() 을 사용하여 문자형으로 변환을 하여 각각 붙여준 뒤, 함수 int() 를 사용하여 다시 숫자형으로 변환하여 합 계산을 한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSum(A, B, C, D): AB = str(A) + str(B) CD = str(C) + str(D) # print(AB..

공부하기/백준 2022.12.14

[Python] 백준 풀기 2527 - 직사각형

파이썬 백준 2527번 실버 1 https://www.acmicpc.net/problem/2527 2527번: 직사각형 4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사 www.acmicpc.net 문제 보기 분류: 수학, 기하학, 많은 조건 분기 코드 보기 import sys inputdata = sys.stdin.readline def fnTwoRectangles(): rectangle_ls.sort() # print(rectangle_ls) # test print x1 ,y1, p1, q1 = rectangle_ls[0] x2, y2, p2, q2 = r..

공부하기/백준 2022.12.13

[Python] 백준 풀기 1297 - TV 크기

파이썬 백준 1297번 브론즈 2 https://www.acmicpc.net/problem/1297 1297번: TV 크기 김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는 www.acmicpc.net 문제 보기 분류: 기하학, 피타고라스 정리 문제 풀기 피타고라스 정리를 이용하여 방정식을 만들고, 세로 가로에 적용되어야 할 배수를 기준으로 정리를 한다. 주어진 입력값 D, H, W 를 대입하여 배수 multiplier 를 계산하고, 이것을 높이, 너비에 각각 곱하여 실제 길이를 구한다. 소수점 결과에 대하여 대응하기 위해 math 라이브러리를 불러오고 내..

공부하기/백준 2022.12.12