본문 바로가기

알고리즘 문제 풀이

(64)
백준 2577 - 숫자의 개수 www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net N = ['0','1','2','3','4','5','6','7','8','9'] A = int(input()) B = int(input()) C = int(input()) R = list(str(A*B*C)) for i in N : print(R.count(i)) 문제 풀이는 파이썬으로 했습니다 0부터 9까지의 숫자를 문자로 하여 리스트를 만들었습니다 세개의 숫자를 입력받은뒤 세 수를 곱한 값을 문자형으로 변환한뒤 count함수를 이용해서 개수를 카운트해 결과를 ..
백준 1065 - 한 수 www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제 풀이는 파이썬으로 했습니다 N = int(input()) numlist = [] onenum = 0 for i in range(1,N+1) : numlist = list(map(int,str(i))) if i < 100 : onenum += 1 elif numlist[1] - numlist[0] == numlist[2] - numlist[1] : onenum += 1 print(onenum) 코드로 구현하는데..
백준 4344 - 평균은 넘겠지 www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 문제 풀이는 파이썬으로 했습니다 n = int(input()) for i in range(n) : a = list(map(int,input().split())) avg = sum(a[1:]) / a[0] cnt = 0 for j in a[1:] : if j > avg : cnt += 1 rate = cnt/a[0]*100 print(str('%.3f' % round(rate, 3)) + '%') 값을 리스트로 입력을 받은 다음 적절하게 인덱스 슬라이싱을 이용해 sum함수로 합해서 점수를 ..
백준 1316 - 그룹 단어 체커 www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net num = int(input()) group = 0 for i in range(num) : word = input() error = 0 for i in range(len(word)-1) : if word[i] != word[i+1] : newword = word[i+1:] if newword.count(word[i]) > 0 : error += 1 if error == 0 : g..
백준 2941 - 크로아티아 알파벳 www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제풀이는 파이썬으로 했습니다 word = ['c=','c-','dz=','d-','lj','nj','s=','z='] a = input() for i in word: a = a.replace(i,'a') print(len(a)) 크로아티아 알파벳을 리스트에 담아뒀습니다 그리고 개수를 카운트 해야 하기 때문에 그대로 입력받은 값을 카운트한다면 하나의 알파벳으로 카운트를 해야..
백준 5622 - 다이얼 www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 풀이는 파이썬으로 하였습니다 dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] a = input() sum = 0 for i in range(len(a)): for j in dial: if a[i] in j: sum += dial.index(j)+3 print(sum)
백준 1157 - 단어 공부 www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 풀이는 파이썬으로 했습니다 word = input().lower() wordlist = list(set(word)) cnt = [] for i in wordlist : count = word.count(i) cnt.append(count) if cnt.count(max(cnt)) >= 2: print("?") else : print(wordlist[(cnt.index(max(cnt)))].upper()) 설명을 해보자면 먼저 단어를 입력을..
백준 2675 - 문자열 반복 www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제풀이는 파이썬으로 했습니다 n = int(input()) a = b = 0 for i in range(n) : a,b = input().split() for j in b : for l in range(int(a)) : print(j, end = "") print() for문의 중첩을 이용해서 풀이를 했습니다 T = int(input()) for i in range(T): R, S = input()...