본문 바로가기

백준8

[백준]1065. 한수 (파이썬, python) https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 1. 문제 분석 먼저 문제를 분석해보자. 1. 각 자리가 등차수열을 이루는 양의 정수를 '한수'라고 정의한다. 2. N이 주어지면, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력해라. 2. 문제 해결 방향 이 문제의 핵심은 해당 수가 '한수'인지, 아닌지를 구별하는 방법을 만들어내는 것이다. 우선 각 자리가 등차수열을 이루면 참이므로, 1~9, 10~99는 모두 한수가 될 수 밖에 없다.. 2021. 11. 17.
[백준]4673. 셀프 넘버 (파이썬, python) https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 1. 문제 분석 이번 문제를 분석해보자면 1. 기존 수를 n이라고 하면, 다음 수 d(n)을 구하는 공식은 n과 n의 각 자리수를 더하는 것이다. ex) d(35) = 35 + 3 + 5 = 43 2. 이때, 35는 43의 생성자라고 한다. 3. 이런 생성자가 없는 숫자를 셀프 넘버라고 하고, 10000보다 작거나 같은 셀프 넘버들을 출력해라. 2.. 2021. 11. 17.
[백준]10989. 수 정렬하기 3(카운팅 정렬) 위 문제는 N개 만큼 입력되는 수를 오름차순으로 정렬하도록 하는 문제입니다. 게시물의 제목에서도 알 수 있듯이, 이 문제는 카운팅 정렬을 통해 해결할 수 있습니다. `1. 문제 해결 방법? 카운팅 정렬을 사용하는 경우를 정리하면 다음과 같습니다. 1) 입력되는 수의 범위가 적으며, 전부 0보다 크거나 같다 2) 중복이 허용된다(사실 허용 안되어도 가능) 카운팅 정렬의 전반적인 아이디어는 다음과 같습니다. 1) 위의 문제처럼 입력되는 수의 범위가 1~10000이라면, 크기가 10001인 배열 c을 만든다. 2) 배열 c의 모든 요소에 0을 넣는다. 3) 새로운 수 tmp가 입력될 때 마다, 배열 c의 index를 i, 그 위치에 해당되는 값을 a라고 하면, 4) tmp == i 인 c[i]의 값을 +1 한.. 2021. 3. 3.
[백준]1436. 영화감독 숌 문제풀이 (파이썬, python) www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 위 문제가 요구하는 점을 요약해보면, 1. 666이 들어가는 수를 순서대로 나열한다. 2. 숫자 N를 입력받고, N번째 666이 들어가는 수를 출력하라. ex) 수 순서는 666, 1666, 2666, 3666, 4666, 5666, 6660, 6661, ... 1. 문제 해결 방법 필자는 우선 경우의 수를 나누어 문제를 해결하고자 하였다. 우선 뒤에 세자리를 제외시킨 후, 앞에 붙는 숫자가 1. 뒤 세자리가.. 2021. 2. 17.
[백준]7568. 덩치 문제풀이 (파이썬, python) www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 위 문제는 사람의 키와 몸무게에 따라서 사람들의 덩치를 순위로 나누고자 하는 문제이다. 이 문제의 요점을 정리해보면, 1. 첫 줄에는 전체 사람수 N, 둘째 줄 부터는 N번 만큼 그 사람의 몸무게와 키를 공백을 하나 둔 채 입력 받는다. 2. 어떤 한 사람이 다른 사람보다 몸무게, 키가 모두 클 시 덩치가 크다고 판단한다. 3. 이가 성립되지 않는다면, 두 사람은 덩치가 같은 것으로 인식된다. 4... 2021. 2. 17.
[백준]11729. 하노이 탑 이동 순서 문제풀이 (파이썬, python) www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 위 문제는 문제의 제목과 같이, 하노이 탑의 이동 순서를 표현하는 문제이다. 우선 기본적인 하노이 탑의 규칙은 다음과 같다. 1. 세개의 막대가 있고, 첫 번째 막대에는 반지름이 각자 다른 N개의 원판이 있다. 2. 원판은 반지름의 크기가 큰 순서로 이루어져 있다. 3-1. 이때, 한 번에 한개의 원판만 이동 할 수 있다. 3-2. 쌓인 원판은 위의 것이 항상 아랫 것보다 작아야 한다. 4. 이 두.. 2021. 2. 14.
[백준]2447. 별 찍기 - 10 문제풀이 (파이썬, python) www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 위 문제는 재귀적인 패턴으로 별을 찍어보는 문제이다. 문제의 특징을 정리해보자면, 1. 3의 거듭제곱의 수가 입력된다 (이때 지수는 1 2021. 2. 14.
백준 문제풀이 정리 항목 이 게시판에는 백준에서 문제풀이를 하면서, 오답 풀이 혹은 필자가 햇갈렸던 문제, 중요하게 기억해야 할 것 같은 문제들을 서술하도록 하겠습니다. 2021. 2. 14.