Python/백준 알고리즘

이번 포스팅은 www.acmicpc.net/problem/1157에서 푼 것을 토대로 작성했습니다. 문자열의 다섯 번째 문제인 단어 공부입니다. 문제 문제를 보고 저 나름대로 해석을 먼저 했습니다. 1. 알파벳 대소문자로 된 단어를 입력받는다. 2. 입력된 알파벳 중에 가장 많이 입력된 알파벳을 대문자로 출력한다. - 대소문자 구분 x 3. 가장 많이 입력된 알파벳이 여러 개 라면? 를 출력한다. 이렇게 두고 코드를 어떻게 진행할지 생각해 보았습니다. Python 코드 s = input().upper() s_set = list(set(s)) # 입력받은 문자열에서 중복 값 제거하여 정렬(무작위) cnt = [] for i in s_set : cnt.append(s.count(i)) # 입력의 count를..
이번 포스팅은 www.acmicpc.net/problem/2675에서 푼 것을 토대로 작성했습니다. 문자열의 네 번째 문제인 문자열 반복입니다. 문제. 첫째 줄에 테스트 케이스 T를 입력받고 테스트 케이스마다 다시 반복 횟수 R과 문자열 S가 공백으로 입력받고 문자열 S를 인덱스 해서 R을 곱한 게 출력으로 나오게 하는 프로그램입니다. 코딩. T = int(input()) for i in range(T): R,S = input().split() for j in range(len(S)): print(S[j]*int(R), end = "") print() 입력은 문제에서 요구하는대로 코딩했습니다. 테스트 케이스 T 마다 for문을 사용한 게 첫 번째이며 R과 S를 공백으로 입력받고 for문을 한번 더 만들어..
이번 포스팅은 www.acmicpc.net/problem/10809에서 푼 것을 토대로 작성했습니다.문자열의 세 번째 문제인 알파벳 찾기입니다. 문제. 문제를 보시면 단어 s를 입력받고단어 s에서 알파벳에 대해 처음 등장하는 위치를 출력하는 프로그램입니다. 예제를 보시면 baekjoon으로 입력을 받고abcdefg.... xyz에서 차례대로 a는 1번째 b는 0번째.... z는 존재하지 않으니 -1로 출력된 것을 볼 수 있습니다.코딩.n = input() a = "abcdefghijklmnopqrstuvwxyz" for i in range(len(a)): print(n.find(a[i]), end=" ") 저는 알파벳을 다 문자열로 만든 후 find 함수로 위치를 찾아서 프로그램을 만들었습니다. 문자열에..
이번 포스팅은 www.acmicpc.net/problem/11720에서 푼 것을 토대로 작성했습니다. 문자열의 두 번째 문제인 숫자의 합입니다. 문제. 문제를 보시면 숫자의 개수 N을 입력받고 둘째 줄에 N개가 공백 없이 입력받으면 공백 없이 입력받은 숫자의 합을 구하는 프로그램입니다. 코딩. n = int(input()) num = input() sum = 0 for i in range(n): sum = sum + int(num[i]) print(sum) 먼저 숫자의 개수 n을 int형으로 입력받도록 하고 그리고 숫자 num을 str형으로 n개만큼 입력받게 했습니다. 그리고 문자형인 num를 int형으로 인덱 싱하여 합을 구하였습니다 예를 들어 num = 54321 이면 지금은 str형인 54321 입..
이번 포스팅은 www.acmicpc.net/problem/11654에서 푼 것을 토대로 작성했습니다. 문자열의 첫 번째 문제인 아스키코드입니다. 문제. 이번 문제는 간단합니다. 입력이 주어지면 그 입력을 아스키코드로 바꾸는 문제입니다. 코딩. n = input() print(ord(n)) 문제를 풀기 전에 알아야 하는 게 문자를 아스키코드를 바꾸는 함수는 ord()이며 아스키코드를 문자로 바꾸는 것은 chr()입니다. 이것을 이용하여 문제를 풀었습니다. 다음 포스팅으로 찾아오겠습니다 :)
이번 포스팅은 www.acmicpc.net/problem/1065에서 푼 것을 토대로 작성했습니다. 함수의 마지막 문제인 한수입니다. 문제. 처음에는 한수라는 개념을 이해를 못해서 문제를 어떻게 풀어야 할지 몰랐습니다 이 문제에서 한수란 예를 들어 210은 2-1 == 1-0이라 한수입니다 또 110은 1-1 != 1-0이라 한수가 아닙니다. 자릿수의 차가 같을 때, 즉 등차수열 일 때 한수이며 이것을 출력하는 프로그램을 만들어야 합니다. 코딩 1. n = int(input()) a=0 b=0 c=0 han = 99 if n < 100: han = n else : for i in range(100, n+1): a = i//100 b = i%100//10 c = i%10 if (a-b)==(b-c): ha..
이번 포스팅은 www.acmicpc.net/problem/4673에서 푼 것을 토대로 작성했습니다. 함수의 두 번째 문제인 셀프 넘버입니다. 문제. 생성자가 아닌 넘버 이 문제에서는 셀프 넘버를 구하는 문제입니다. 예를 들어 1은 1+1 = 2의 생성자이고 2는 2+2=4의 생성자 3 -> 6 4 -> 8 5 -> 10 이렇게 진행되는데 계속 진행하다 보면 생성자가 없는 숫자들이 나옵니다 1, 3, 5, 7, 9, 20, 31 등등 이런 숫자들을 구해야 하는 문제입니다. 코딩. def d(n): num = n for i in list(str(n)): for j in i: num += int(i) return num self_num = [] for value in range(1,10001): self_nu..
이번 포스팅은 www.acmicpc.net/problem/15596에서 푼 것을 토대로 작성했습니다. 함수의 첫 번째 문제인 정수 N개의 합입니다. 문제. 문제를 보시면 정수 n개가 주어졌을 때 n의 합을 구하는 함수를 만드는 것이 목표이고 python의 조건은 정수 n개가 있는 리스트 a가 주어지며 리턴 값에 a에 포함되는 n개의 합이 출력되게 하는 것입니다. 코딩 1. def solve(a): ans = 0 for num in a: ans += num return ans 처음은 for문을 이용하여 합수를 만들었습니다. 리스트 a가 있다는 가정에 a의 요소를 빼서 ans += num으로 정수의 합을 만들도록 했습니다. 코딩 2. def solve(a): return sum(a) 두 번째는 파이썬에서 제..
우준세
'Python/백준 알고리즘' 카테고리의 글 목록 (2 Page)