반응형

백준 215

[파이썬, Python] 백준 4673: 셀프 넘버

문제 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 코드 numbers = set(range(1,10001)) remove_numbers = set() for i in range(1, 10001): for j in str(i): i += int(j) remove_numbers.add(i) self_numbers = sorted(numbers - remove_numbers) for i in se..

[파이썬, Python] 백준 15596: 정수 N개의 합

문제 https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 코드 def solve(a): return sum(a) 설명 함수를 만드는 문제인데, 간단하게 생각하면 된다. 파이썬의 문제를 보면 a는 합을 구해야 하는 정수가 저장되어 있는 리스트라고 한다. 그렇다면 solve라는 함수를 만들어서 a를 인자로 받아주고, a의 합을 sum으로 계산하여 return 해준다...

[파이썬, Python] 백준 1316: 그룹 단어 체커

문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 코드 n = int(input()) cnt = n for _ in range(n): text = input() for i in range(0, len(text)-1): if text[i] == text[i+1]: pass elif text[i] in text[i+1:]: cnt -= 1 break print(cnt) 설명 우선 단어의 개수를 입력 받아준다. 그..

[파이썬, Python] 백준 2941: 크로아티아 알파벳

문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 코드 text = input() croalpha = ['c=','c-','dz=','d-','lj','nj','s=','z='] for i in croalpha: text = text.replace(i,'*') print(len(text)) 설명 우선 크로아티아 알파벳의 리스트를 만들어준다. 이후 입력받은 텍스트에서 만약 크로아티아 알파벳이 있다면, 다른..

[파이썬, Python] 백준 5622: 다이얼

문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 코드 call = str(input()) time = 0 num = ['','ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ'] for i in range(len(call)): for j in range(len(num)): if call[i] in num[j]: time += num.index(num[j])+2 print(time) 설명 우선 전화를 걸 알파벳을 받아주고 time을 0으로 설정해준다. 이후 각 숫자에 맞는 알파벳끼리 묶어서..

[파이썬, Python] 백준 2908: 상수

문제 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 코드 a, b = input().split() a = int(a[::-1]) b = int(b[::-1]) if a > b: print(a) else: print(b) 설명 우선 a와 b를 뒤집어서 읽는다는 조건이 있었으므로 숫자를 뒤집어주기 위해 문자열로 입력 받아준다. 이후 각각 a와 b를 뒤집어서 정수로 만들어 주는데, [::-1] 과 같은 형식으로 사용한다. 이는 문자열 슬라이싱을 이용한 방법인데..

[파이썬, Python] 백준 1152: 단어의 개수

문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 코드 text = input().split() print(len(text)) 설명 띄어쓰기를 통해 단어를 세게 되므로, 주어진 문자열을 split() 함수를 통해 공백을 통해 구분하게 되면 간단해진다. 이후 len을 통해서 개수를 출력해주자

[파이썬, Python] 백준 1157: 단어 공부

문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 코드 word = input().upper() wordli = list(set(word)) cnt = [] for i in wordli: count = word.count cnt.append(count(i)) if cnt.count(max(cnt)) > 1: print("?") else: print(wordli[cnt.index(max(cnt))]) 설명 우선 단어를 입력받아야 하는데 대소문자의 구분이 없다고 했으므로, up..

[파이썬, Python] 백준 2675: 문자열 반복

문제 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 코드 T = int(input()) for _ in range(T): S = list(input()) for i in range(2,len(S)): print((S[i]*int(S[0])), end = '') print() 설명 우선 T에 테스트 케이스의 개수를 받아준다. T의 수만큼 반복문을 실행해주는데, 반복문에서 문장을 입력 받아준다. 이후 처음 입력된 숫자를 제외한 부분을 숫..

[파이썬, Python] 백준 10809: 알파벳 찾기

문제 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 코드 text = input() for i in list(range(97,123)): print(text.find(chr(i)), end = ' ') 설명 우선 텍스트를 입력 받아준다. 이후 97에서 123으로 이루어진 리스트에서 반복문을 돌리게 되는데, 이는 알파벳 소문자의 아스키코드다. chr(97)은 알파벳 'a'를 출력해주는 코드다. 'find'의 경우 문자열에서 특정 인..

반응형