본문 바로가기

PS

(12)
백준 2941번 파이썬 문제풀이 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 아이디어는 크로아티아 알파벳들을 모두 크로아티아 알파벳이 아닌 일반 문자 하나로 치환해줘서 총 개수를 세는 것이다 text = input() change = ['c=', 'c-','dz=','d-','lj','nj','s=','z='] for i in change: text = text.replace(i,'a') print(len(text))
백준 1932번 파이썬 문제풀이 n = int(input()) dp = [] for i in range(n): dp.append(list(map(int,input().split()))) for i in range(1,n): for j in range(i+1): if j == 0: left = 0 else: left = dp[i-1][j-1] if j == i: right = 0 else: right = dp[i-1][j] dp[i][j] = dp[i][j] + max(left,right) print(max(dp[n-1])) 1. dp 테이블 접근해야 할 때마다 리스트의 범위를 벗어나지 않은 지 체크 2. 왼쪽 위 혹은 바로 위 2가지 위치에서만 내려올 수 있다.
백준 1157번 파이썬 문제풀이 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net freq = [0]*26 #개수 alpha = input() #소문자 대문자로 변환 alpha = alpha.upper() for i in alpha: freq[ord(i)-65] += 1 result_index = freq.index(max(freq)) #중복 확인 check = True for i in range(26): if i != result_index and freq[i] == freq[result_index]: che..
백준 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 문제에서 요구하는 숫자의 범위가 1~10000이라 매우 적으므로 완전탐색으로 답을 구해주면 된다. #생성자의 개수(1~10000) constructor = [0]*10001 for i in range(1,10001): #숫자를 문자열로 변환 result = 0 numbers = str(i) #N을 더해준다 result += i #N의 자릿 수를 더..