Python 390

[baekjoon] 백준 5525번(파이썬): IOIOI

문제 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 알고리즘 - IOI 단위로 최대 m번씩 탐색하여 문제를 수행한다. - 현재 문자열이 IOI 이고 IOI 문자열 개수가 n 개라면 S안에 Pn이 포함된 것으로 카운트해준다. - 현재 문자열이 IOI 이기 때문에 다다음 문자부터 확인해도 되므로 I를 + 2 해준다. - 현재 문자열이 IOI 가 아니라면 다음 문자를 확인하고 IOI 문자열 개수를 0으로 초기화해준다. 코드 import sys n..

CodingTest/Baekjoon 2021.12.27

[baekjoon] 백준 1357번(파이썬): 뒤집힌 덧셈

문제 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 알고리즘 - 두 수를 입력받는다. - 입력받은 두 수를 역순으로 더한다. - 더한 두 수를 역순으로 변환해 출력한다. 코드 import sys x, y = map(str, sys.stdin.readline().split()) # 입력받은 두 수를 역순으로 더한다. z = str(int(x[::-1]) + int(y[::-1])) # 더한 두 수를 역순으로 변환해 출력 print(int(z[::-1])) git..

CodingTest/Baekjoon 2021.12.26

[baekjoon] 백준 10610번(파이썬): 30

문제 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 알고리즘 - 가장 큰 수를 만들기 위해 입력받은 리스트를 오름차순으로 정렬한다. - join() 함수를 사용하여 정렬한 리스트를 합쳐주어 하나의 수로 만들어준다. - 이때 수가 30으로 나누어 떨어지면 미르코가 만들고 싶어 하는 가장 큰 수가 되는 것이다. 코드 import sys n = list(map(str, sys.stdin.readline().strip())) n.sort(reverse= True) # 가장 큰 수를 만들기 위해 내림차순으로 정렬 n =..

CodingTest/Baekjoon 2021.12.25

[baekjoon] 백준 1181번(파이썬): 단어 정렬

문제 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 알고리즘 - set 자료형을 통해 중복을 제거하고 정렬을 위해 list 자료형으로 감싸준다. - 길이가 짧은 것부터 길이가 같으면 사전 순으로 정렬하기 위해 sort() 함수를 사용한다. - sort()함수를 통해 오름차순으로 정렬 후 단어의 길이를 기준으로 다시 오름차순으로 정렬한다. - 반복문을 통해 단어를 출력한다. 코드 import sys n = int(sys.stdin.readline()) # set 자료형을 통해 중복을 제거하고 정렬을..

CodingTest/Baekjoon 2021.12.24

[baekjoon] 백준 1427번(파이썬): 소트인사이드

문제 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 알고리즘 - 입력받은 수를 내림차순으로 정렬한 후 반복문을 통해 수를 출력한다. 코드 import sys n = list(map(int, sys.stdin.readline().strip())) n.sort(reverse= True) # 입력받은 수를 내림차순으로 정렬 # 반복문을 통해 수를 출력 for i in n: print(i, end="") github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest..

CodingTest/Baekjoon 2021.12.23

[baekjoon] 백준 11718번(파이썬): 그대로 출력하기

문제 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 알고리즘 - 반복문과 try문을 통해 입력을 받아 그대로 출력한다. - 입력이 없다면 반복문을 멈춘다. 코드 import sys # 반복문과 try문을 통해 입력을 받는다. while True: try: word = str(sys.stdin.readline().rstrip("\n")) print(word) # 입력이 없으면 반복문을 멈춘다. if word == "": break # 그 외 오류가 있으면 멈춘다. except: break gi..

CodingTest/Baekjoon 2021.12.22

[baekjoon] 백준 2941번(파이썬): 크로아티아 알파벳

문제 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 알고리즘 - 리스트에 크로아티아 알파벳을 만든다. - 반복문을 통해 크로아티아 알파벳을 "x"로 변환한다. - 변환한 후 남은 알파벳의 개수를 출력한다. 코드 import sys word = str(sys.stdin.readline().strip()) target = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] # 크로아티아 알파벳 # 반복문을 통해 크로아티아 알파벳을 "x"..

CodingTest/Baekjoon 2021.12.21

[baekjoon] 백준 1316번(파이썬): 그룹 단어 체커

문제 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 알고리즘 - 반복문을 통해 단어를 확인한다. - 반복문을 통해 각 단어들의 문자를 확인한다. - 현재 비교하고 있는 문자와 다음 문자들을 확인하면서 그룹 단어의 유무를 판단한다. 코드 import sys n = int(sys.stdin.readline()) cnt = 0 # 반복문을 통해 단어를 확인 for _ in range(n): word = list(map(str, sys.stdin.readline().strip()))..

CodingTest/Baekjoon 2021.12.20

[baekjoon] 백준 1157번(파이썬): 단어 공부

문제 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 알고리즘 - 알파벳 단어를 입력받을 때 모든 알파벳을 대문자로 받는다. - collections 메서드에 Counter 함수를 통해 알파벳의 개수를 확인한다. - 알파벳의 개수가 1개 이하라면 최대 개수의 알파벳을 출력한다. - 알파벳의 개수가 2개 이상이라면 알파벳의 개수를 비교하여 출력한다. 코드 import sys from collections import Counter word = list(map(str, sys.stdin.readline().strip().upper())) # 입력..

CodingTest/Baekjoon 2021.12.19

[baekjoon] 백준 2675번(파이썬): 문자열 반복

문제 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 알고리즘 - 테스트 케이스만큼 반복한다. - 반복해야 하는 문자를 반복 횟수만큼 출력한다. 코드 import sys t = int(sys.stdin.readline()) # 테스트 케이스를 반복 for _ in range(t): r, m = map(str, sys.stdin.readline().split()) # 반복해야하는 문자를 반복 횟수만큼 출력 for i in m: for j in range(int(r)): print(i, end="") p..

CodingTest/Baekjoon 2021.12.18