본문 바로가기

프로그래밍/백준

(146)
Python 백준 1152 단어의 개수 문제- 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력- 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력- 첫째 줄에 단어의 개수를 출력한다. 해설- 단어를 공백으로 구분해 리스트에 입력을 받고 리스트의 크기를 출력한다. 소스코드- word = list(map(str, input().split())) print(len(word))
Python 백준 1157 단어 공부 문제- 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력- 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력- 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 해설- 입력받은 문자열의 중복을 제거한 리스트를 만들고 각 단어의 갯수를 카운트해 맥스 값을 찾는다 맥스 값이 2개 이상이면 ?를 출력한다. 소스코드- word = input().upper() word_list = list(set(word)) word_cnt = [] fo..
Python 백준 2675 문자열 반복 문제- 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력- 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력- 각 테스트 케이스에 대해 P를 출력한다. 해설- 파이썬의 ..
Python 백준 11720 숫자의 합 문제- N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력- 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력- 입력으로 주어진 숫자 N개의 합을 출력한다. 해설- 배열로 숫자들을 입력받은뒤 문자열로 변경하여 각각의 자릿수들을 더한다. 소스코드- array = []; sum=0 a = int(input()) num = str(input()) array = num for i in range(0, a): sum += int(array[i]) print(sum)
Python 백준 11654 아스키 코드 문제- 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력- 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력- 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 해설- 문자 -> 아스키 코드 = ord() 아스키 코드 -> 문자 = chr() 소스코드- def ascii(a): return ord(str(a)) num=input() print(ascii(num))
Python 백준 1065 한수 문제- 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력- 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력- 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 해설- 99이하의 숫자들은 한수이고, 100 이상의 숫자들은 각 자릿수의 차가 일정하여야 하므로 조건문을 소스코드와 같이 걸어준다. 소스코드- def hansu(a): array = list(str(a)) if(a
Python 백준 4673 셀프 넘버 문제- 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자..
Python 백준 15596 정수 N개의 합 문제- 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오. 작성해야 하는 함수는 다음과 같다. C, C11, C (Clang), C11 (Clang): long long sum(int *a, int n); a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000) n: 합을 구해야 하는 정수의 개수 리턴값: a에 포함되어 있는 정수 n개의 합 C++, C++11, C++14, C++17, C++ (Clang), C++11 (Clang), C++14 (Clang), C++17 (Clang): long long sum(std::vector &a); a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤..