코딩일지/python 백준 알고리즘 81

python 백준 알고리즘 1152번: 단어의 개수

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 내 제출 word = input().split() print(len(word)) 단어를 공백을 기준으로 끊어 받아서 단어의 길이(갯수)를 출력. 한번에 하면 print(len(input.split()))

python 백준 알고리즘 1157번: 단어 공부

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 내 제출 word = input().upper() # 대문자로 고정 ex) word = BAAA word_list = list(set(word)) # 입력받은 문자열에서 중복값을 제거 ex) word_list = ['B', 'A'] cnt_list = [] for x in word_list : # x = B, A cnt = word.count(x) cnt_list.append(cnt) # count 숫자를 리스트에 append e..

python 백준 알고리즘 2675번: 문자열 반복

https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 내 제출 n = int(input()) for _ in range(n): # n만큼 테스트케이스 돌리기 cnt, word = input().split() text = '' for i in word: text += int(cnt) * i # cnt만큼 문자열 곱해서 텍스트 출력 print(text) * 중첩 반복문을 이용해 n개만큼 테스트케이스를 돌리고 / 반복횟수만큼 각 문자열 글자를 곱..

python 백준 알고리즘 10809번: 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 내 제출 word = input() alphabet = list(range(97,123)) # 아스키코드 알파벳 소문자(a~z) 숫자 범위 for i in alphabet : print(word.find(chr(i))) find함수와 chr함수를 처음 써봐야하는 문제라 감이 잡히지 않아서 구글링을 할 수밖에 없는 문제였다 chr() : 아스키코드에 해당하는 숫자를 문자열로 변환시킨다...

python 백준 알고리즘 11720번: 숫자의 합

https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 내 제출 n = int(input()) # n개의 케이스 nums = list(input()) # 공백없이 쓰여있는 숫자 입력 sum = 0 for i in range(n) : sum += int(nums[i]) # for문을 이용해 전부 더해버리기 print(sum) for문을 이용해 총 합을 구하는 딱히 어려울 건 없는 문제였다. 정보를 더욱 찾아본 결과 sum 함수를 이용해 더 간단히 풀 수 있었다. print(sum(map(int,input())))

python 백준 알고리즘 11654번: 아스키 코드

https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net ※아스키 코드 ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호) 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다. 아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. ..

python 백준 알고리즘 1065번: 한수

https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net ※ 각 자리가 등차수열 -> 한자리수, 두자리수 숫자는 전부 한수일 것이다.(예제 1로 추측) 셀프넘버 문제와 비슷한 방식으로 숫자를 자리수대로 분리하여 비교하기. 1,000은 한수가 아니기때문에 세자리 수 안에서만 비교해서 백의자리 - 십의자리 == 십의자리 - 일의자리 이면 등차수열(한수) 성립. num_list = list(map(int,str(i))) ### 숫자를 자릿수대로 분리 num_li..

python 백준 알고리즘 4673번: 셀프 넘버

풀이 전체 1~10,000까지의 수에서 생성자를 구하는 식 을 사용해 생성자 리스트에 추가한 뒤(append) for n in str(num): ### ex) 280 num += int(n) ### num = 280 + int('280[0]') + int('280[1]') + int('280[2]') = 280 + 2 + 8 + 0 전체 수에서 생성자 리스트를 빼는 형식으로 셀프 넘버를 구한다. 내 제출 numbers = set(range(1,10_001)) ### 1~10000까지 ganarated_num_list=[] ### 생성자 리스트 for num in numbers: for n in str(num): ### ex) 63 num += int(n) ### num = num + int(n[0]) +..

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): sum = 0 for i in a: sum += i return sum 반복문을 함수 형식으로 만들어서 제출했다. p.s. 애초에 파이썬 안에 내장된 sum함수를 이용할 수 있다. def solve(a): return sum(a)

python 백준 알고리즘 4344번: 평균은 넘겠지

https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 테스트케이스 c만큼 range 둘째줄부터 첫 수는 학생의 수 N ([0]), 이후 N명의 점수 ([1:]) 점수/N 으로 평균구해서 각 점수와 비교해 평균보다 높은 학생의 비율을 소수점 셋째 자리까지 출력(format 함수 이용) 내 제출 C = int(input()) # 케이스의 수 for _ in range(C): scores = list(map(int,input().split())) avg = sum(scores[1:])/scores[0] # 평균 구하기 scores[..