백준 478

[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

[Python] 백준 풀기 1080 - 행렬

파이썬 백준 1080번 실버 1 https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 문제 보기 분류: 그리디 알고리즘 문제 풀기 처음에 문제를 정확하게 읽지 않아 A 와 B 에서 같지 않은 부분만 3x3 으로 변경이 가능하다고 생각하여 최소 횟수로로 변경 가능한 위치를 찾느라 좀 헤메었다. 제시된 문제의 연산 규칙에 따라 3x3 부분의 1열1행에 위치한 원소가 다르면 무조건 3x3 을 뒤집으면 된다. 다 뒤집어 봤는데도 같지 않으면 -1 이고, 뒤집을 수 없어도..

공부하기/백준 2022.12.11

[Python] 백준 풀기 2217 - 로프

파이썬 백준 2217번 실버 4 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 정렬 문제 풀기 최대 중량을 들기 위해서는 단일 로프가 허용하는 중량이 클수록 그리고 중량을 분산할 로프가 많을수록 유리하다. 따라서 임의의 순서로 주어지는 로프의 중량 정보를 내림차순 정렬을 하고 가장 허용 중량이 작은 로프부터 하나씩 제거해 가며 최댓값을 찾는다. 내림차순 정렬된 로프 리스트에서 맨 오른쪽 데이..

공부하기/백준 2022.12.10

[Python] 백준 풀기 1789 - 수들의 합

파이썬 백준 1789번 실버 5 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘 문제 풀기 가장 많은 N 개의 자연수를 얻기 위해서 가장 작은 1 부터 2, 3, ,,, 순서로 합을 시켜준다. 이때 S 를 넘게 되면 그 이전의 순차 자연수는 마지막 S 를 맞추기 위해 정확한 값으로 한 번 들어간다. 최대 N 을 위해 이런 식으로 진행된다는 의미이다. 코드 작성은 S 에서 1, 2, 3, ,,, 순차적으로 자연수를 빼주다가 S 가 음수가 되는 시점에 반복문을 빠져나오고 그때의 N 의 개수를 출력하는 식으로 작성하였다. 코드..

공부하기/백준 2022.12.09

[Python] 백준 풀기 2212 - 센서

파이썬 백준 2212번 골드 5 https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 문제 보기 분류: 그리디 알고리즘, 정렬 문제 풀기 예제 입력 1 번에 대한 경우를 그림으로 나타내면 위와 같다. 집중국이 커버칠 수 있는 최소한의 거리를 찾으면 가장 넓은 구간 3 을 제외하고 2, 1+2 를 선택하여 최솟값을 이루는 집중국을 위치시킬 수 있다. 임의로 주어진 센서의 순서를 오름차순으로 정렬을 하고, 그 숫자(센서) 간의 ..

공부하기/백준 2022.12.08

[Python] 백준 풀기 12904 - A와 B

파이썬 백준 12904번 골드 5 https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 문제 보기 분류: 구현, 문자열, 그리디 알고리즘 문제 풀기 역으로 T 에서 S 로 변경이 가능한지를 확인한다. 이 문제로 주어진 문자열을 다루는 것에 대해 일부 학습이 되었다. 맨 뒷 문자 확인, 맨 뒷 문자 제거, 문자 전체 뒤집기. while loop 를 실행하면서 같은 T 와 S 가 같아질 때까지 반복을 하여 조건을 만..

공부하기/백준 2022.12.07