본문 바로가기

기초알고리즘69

[백준] 2231번: 분해 합 (python) 2231번: 분해 합 문제) 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 : 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 : 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 .. 2022. 1. 11.
[백준] 1259번: 팰린드롬수 (python) 1259번: 팰린드롬수 문제) 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. 입력 : 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 .. 2022. 1. 11.
[백준] 1085번: 직사각형에서 탈출 (python) 2577번: 숫자의 개수 문제) 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 x, y, w, h가 주어진다. 출력 : 첫째 줄에 문제의 정답을 출력한다. 풀이) 1 2 3 4 5 6 nums = input() nums = nums.split(" ") nums = list(map(int, nums)) length = [nums[0], nums[1], nums[3]-nums[1], nums[2]-nums[0]] print(min(length)) Colored by Color Scripter cs 각 거리의 크기를 .. 2022. 1. 10.
[백준] 11720번: 숫자의 합 (python) 11720번: 숫자의 합 문제) N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 : 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 : 입력으로 주어진 숫자 N개의 합을 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 count = int(input()) num = input() num = list(map(str, num)) #쪼개기 위해 문자열 기준으로 자르기 num = list(map(int, num)) #리스트를 int로 변환 answer = 0 for i in range(0, count): answer += num[i] print(answer) Colored by Color Sc.. 2022. 1. 9.