문자열(4)
-
백준 12101 - 1, 2, 3 더하기 2 (Python)
문제 https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 풀이 n,k = map(int,input().split()) save = {} save[1] = ["1"] save[2] = ["1+1","2"] save[3] = ["1+2","1+1+1","2+1","3"] for i in range(4,12): save[i] = [] for j in save[i-1]: save[i].append(j+"+1") for j in save[i-2]: save[i].append(j+"+2") ..
2024.02.16 -
백준 11283 - 한글 2 (Python)
문제 https://www.acmicpc.net/problem/11283 11283번: 한글 2 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있 www.acmicpc.net 풀이 print(ord(input())-44031) 아주아주 간단한 코드 한줄이다. 파이썬은 ord를 이용하여 유니코드 번호를 알아낼 수 있다. '가'의 유니코드가 44032 이고 1번째 한글이므로, 입력받은 문자의 유니코드에 44031을 빼주어서 출력하면 순서를 알 수 있다.
2024.02.12 -
백준 1431 - 시리얼 번호 (Python)
문제 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 풀이 a = [] for _ in range(int(input())): s = input() a.append([len(s),sum([int(i) for i in s if i.isdigit()]),s]) a.sort(key=lambda x: (x[0],x[1],x[2])) for i in a: print(i[2]) 코드는 많이 줄여서 썼지만 알고리즘은 다음과 같다. [문자열의 길이, 숫자..
2024.02.12 -
백준 16719 - ZOAC (Python)
문제 https://www.acmicpc.net/problem/16719 16719번: ZOAC 2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로 www.acmicpc.net 풀이 s=input() l=len(s) now =[False]*l for i in range(l): target = [] target_st=[] j=0 #가능한 경우의 수 다 구함 while j
2024.02.03