CodingTest 432

[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

[baekjoon] 백준 1152번(파이썬): 단어의 개수

문제 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 알고리즘 - String에 split()을 알면 쉽게 풀 수 있는 문제이다. - split()을 통해 공백 부분을 기준으로 문자만을 나누어 리스트에 넣어두고 리스트에 길이를 출력한다. 코드 import sys c = list(map(str, sys.stdin.readline().split())) print(len(c)) github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해..

CodingTest/Baekjoon 2021.12.17

[baekjoon] 백준 8958번(파이썬): OX퀴즈

문제 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 알고리즘 - 반복문을 통해 테스트 케이스를 실행한다. - 점수의 변수를 res로 정하고 점수에 더해줄 변수를 cnt로 정한다. - 반복문을 통해 문자열을 확인하고 문자가 'O'라면 점수에 cnt를 더해주고 cnt에 +1을 더해준다. - 문자가 'X'라면 cnt를 1로 초기화해준다. 코드 import sys n = int(sys.stdin.readline()) # 반복문을 통해 테스트 케이스를 실행 for _ in range(n): m =..

CodingTest/Baekjoon 2021.12.16