알고리즘/백준 문제풀이 52

[백준] 1316 그룹 단어 체커 파이썬 풀이 (문자열)

코드 1 2 3 4 5 6 7 8 9 10 11 12 13 num = int(input()) count = 0 for i in range(num): word = input() for index in range(len(word)): #index로 접근 if index != len(word)-1: if word[index] == word[index+1]: continue elif word[index] in word[index+1:]: break else: count+=1 print(count) Colored by Color Scripter cs 문제풀이 예를 들어 aabbccb를 보면 b가 앞에 있었는데 띄워져서 또 나왔으니까 그룹 단어가 아니라는 것이다. 그러면 처음부터 보자면 맨 앞에 글자 (a)와 바로..

[백준] 1157 단어공부 파이썬 풀이

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 words = input().upper() unique_words = list(set(words)) # 입력받은 문자열에서 중복값을 제거 cnt_list = [] for x in unique_words : cnt = words.count(x) #입력받은 문자에 x가 몇개 나온지 센다. cnt_list.append(cnt) # count 숫자를 리스트에 append if cnt_..

[백준] 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # set은 중복을 허용하지 않는 자료구조이다 # 원래 number들을 set에 저장해놓고 (집합 개념) # 생성자가 있는 숫자를 다른 집합에 저장하고 # 그 둘의 차집합을 구하면 된다 numbers = set(range(1, 10000)) generated_num = set() fo..

[백준] 4344 평균은 넘겠지 파이썬 풀이

https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net c = int(input()) #맨 위에 줄 입력받음 for i in range(c): inputs = list(map(int,input().split())) #한줄씩 입력받음 avg = sum(inputs[1:])/inputs[0] #평균 over_avg = 0 #평균 넘는 사람 for score in inputs[1:]: if score> avg: over_avg += 1 rate = over_avg/inputs[0] * 100 print(f'{rate:.3f}%') #..

[백준] 1110 더하기 사이클 파이썬 풀이

https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 N = int(input()) #입력받은 값을 int로 바꿈 num = N #변하는 값 count = 0 #몇 번 사이클인지 while True: a = num//10 b = num %10 c = (a+b)%10 num = (b*10) + c count += 1 if(num == N): break print(count) cs..

[백준] 2884 알람시계 파이썬 풀이

https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net H,M = map(int,input().split()) if M > 44: print(H, M-45) elif M0: print(H-1,M+15) else: print(23,M+15) 말로 풀어서 풀이 45분 전에 알람을 맞추라는 소리인데 분에서 -45를 해야한다. 원래 시간에서 분이 45보다 크거나 같을 경우 그냥 45를 빼주면 된다 그런데 45보다 작을 경우 시에도 변화가 생긴다 10시 10분보다 45..

[백준] 백준 문제 제출할 때 어떻게 하는지 모르는 사람~! input()이 대체 뭔데! 입력값을 어떻게 테스트 하는데! 백준 제출 하는 법

https://www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 이 문제를 보자 입력을 이렇게 받는다고 한다. 대체 어떻게 제출하는지 몰라서 다른 사람의 답안을 본다 이번에 파이썬을 처음 배운 것이다! 제출 하는 방법도 모름! A,B = map(int,input().split()) print(A+B, A-B, A*B, A//B, A%B, sep='\n') 변수 선언도 안했는데 뭐를 프린트 한단거냐! 바로바로 input()을 하는게 직접 입력을 받아온다는 뜻이다 나는 vscode를 쓰는데 파이썬을 실행시키면 아무것도 안뜨는..

[백준] 2588 곱셈 파이썬 풀이

1 2 3 4 5 6 7 8 9 10 A = int(input()) # 첫번째 입력받은 문자 : 숫자로 변환 B = input() # 두번째 입력받은 문자 : 문자열 그대로 둠 # 문자열의 인덱스를 이용해서 두번째 입력 받은 문자를 하나씩 숫자로 반환하고 A와 곱한다. AxB2 = A * int(B[2]) AxB1 = A * int(B[1]) AxB0 = A * int(B[0]) AxB = A * int(B) print(AxB2, AxB1, AxB0, AxB, sep='\n') cs 코드 설명 (3)에 들어갈 수는 A와 두번째 받은 숫자의 맨 끝자리 수를 곱하는 것이다. 숫자를 index로 접근하기 위해 input()을 string형태로 그대로 받았다. 둘다 세자리 자연수 이므로 맨 끝 숫자는 B[2] ..