baekjoon 383

[baekjoon] 백준 1755번(파이썬): 숫자놀이

문제 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 알고리즘 - 반복문을 통해 m부터 n까지 수를 영어 단어로 바꾼다. - 바꾼 영어 단어는 사전 순으로 정렬하기 위해 오름차순으로 정렬한다. - 반복문을 통해 영어 단어의 수를 출력한다. - 영어 단어의 수는 한 줄의 10개씩 출력한다. 코드 import sys word = { "0" : "zero", "1" : "oen" , "2" : "two" , "3" : "three" , "4" : "four" ,..

CodingTest/Baekjoon 2022.01.08

[baekjoon] 백준 1969번(파이썬): DNA

문제 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 알고리즘 - 반복문을 통해 서로 다른 4가지의 뉴클레오티드가 몇 개씩 있는지 확인한다. - 각 행의 열을 확인 후 뉴클레오티드 개수가 제일 많은 걸 찾고 그때의 DNA가 Hamming Distance의 합이 가장 작은 DNA가 된다. - 사전 순으로 정렬하기 위해 A/C/G/T순으로 확인한다. - DNA는 뉴클레오티드 개수가 제일 많은 것이고 Hamming Distance은 나머지 뉴클레오티드의 개수가 된다. 코..

CodingTest/Baekjoon 2022.01.07

[baekjoon] 백준 1769번(파이썬): 3의 배수

문제 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 알고리즘 - 반복문을 통해 입력받은 수가 한 자리 수가 될 때까지 문제 변환 과정을 수행한다. - 문제 변환 과정은 sum() 함수를 통해 리스트의 모든 수를 더하고 반복문을 통해 더한 수를 자릿수에 나눠 리스트에 다시 담는다. 담은 리스트는 다시 word에 넣어 이 과정을 반복한다. - 문제 변환 과정이 이루어질 때마다 카운트한다. - 입력받은 수가 한 자리 수가 됐다면 문제 변환 과정을 카운트한 수를 출력하고 한 자리 수가 3의 배수인지 확인 후 조건에 맞게..

CodingTest/Baekjoon 2022.01.06

[baekjoon] 백준 14426번(파이썬): 접두사 찾기

문제 14426번: 접두사 찾기 문자열 S의 접두사란 S의 가장 앞에서부터 부분 문자열을 의미한다. 예를 들어, S = "codeplus"의 접두사는 "code", "co", "codepl", "codeplus"가 있고, "plus", "s", "cude", "crud"는 접두사가 아니다. 총 N개의 문자 www.acmicpc.net 알고리즘 - 정렬을 통해 절대로 접두사가 될 수 없는 문자열을 제외하여 리스트를 새로 만든다. - 반복문을 통해 집합 s와 접두사가 될 수 있는 문자열을 비교한다. - 비교하는 과정에서도 접두사가 될 수 없는 문자열이 나올 경우 break를 통해 다음 문자열을 비교한다. 코드 import sys n, m = map(int, sys.stdin.readline().split()..

CodingTest/Baekjoon 2022.01.05

[baekjoon] 백준 1254번(파이썬): 팰린드롬 만들기

문제 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 알고리즘 - 반복문을 통해 문자열의 문자를 확인한다. - i번째로 시작한 문자열과 i번째로 시작한 문자열을 뒤에서부터 확인한 문자열을 비교한다. - 두 문자열이 같을 경우 i번째 이전에 문자들을 문자열 뒤에 추가하면 팰린드롬을 만들 수 있다. - 현재 문자열의 개수와 i번째 이전에 문자의 개수를 더해서 출력한다. 코드 import sys word = str(sys.stdin.readline().rstrip("\n")) # 반복문을 통해 문자를 확인 for i i..

CodingTest/Baekjoon 2022.01.04

[baekjoon] 백준 10430번(파이썬): 나머지

문제 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 알고리즘 - 세 개의 숫자를 입력받는다. - 문제의 조건에 맞게 출력한다. 코드 import sys A, B, C = map(int, sys.stdin.readline().split()) # 문제의 조건에 맞게 출력 print((A + B) % C) print(((A % C) + (B % C)) % C) print((A * B) % C,) print(((A % C) * (B % C)) % C) github GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법 내가 푼 코딩 테스트 문제와 해결법. Contribute to junja..

CodingTest/Baekjoon 2022.01.03

[baekjoon] 백준 4358번(파이썬): 생태학

문제 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 알고리즘 - 반복문을 통해 나무의 이름을 입력받는다. - 입력받은 나무가 없다면 반복문을 멈춘다. - 나무의 종류에 이미 나무가 있다면 카운트한다. - 나무의 종류에 나무가 없다면 나무를 추가한다. - 나무의 개수를 카운트한다. - 사전 순으로 정렬해주기 위해 나무의 종류를 리스트로 만든다., - 만든 리스트를 오름차순으로 정렬하여 사전 순으로 정렬한다. - 사전 순으로 정렬한 나무의 이름순으로 백분율을 계산해서 출력한다. 코드 import sy..

CodingTest/Baekjoon 2022.01.03

[baekjoon] 백준 15904번(파이썬): UCPC는 무엇의 약자일까?

문제 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 알고리즘 - 반복문과 조건문을 통해 입력받은 문자열에 UCPC가 있는지 확인한다. - 문자열에 UCPC가 있으면 문자열을 UCPC를 찾은 문자 이후에 리스트로 초기화한다. - 문자열에 UCPC가 없는 경우에는 "I hate UCPC"를 출력하고 종료시킨다.(exit() : 종료) - 종료가 안됐다면 문자열에 UCPC가 있는 것으로 "I love UCPC"를 출력한다. 코드 import sys word = str(sys.stdin.rea..

CodingTest/Baekjoon 2022.01.02

[baekjoon] 백준 14425번(파이썬): 문자열 집합

문제 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 알고리즘 - 반복문을 통해 m개의 문자열을 확인한다. - 집합 s에 m개의 문자열이 포함되어 있으면 카운트한다. - 카운트 한 값을 출력한다. 코드 import sys n, m = map(int, sys.stdin.readline().split()) s = [str(sys.stdin.readline()) for _ in range(n)] # 집합 s cnt = 0 # 반복문을 통해 m개의 문자열을 확인 for i in rang..

CodingTest/Baekjoon 2022.01.01

[baekjoon] 백준 1439번(파이썬): 뒤집기

문제 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 알고리즘 - 반복문을 통해 문자열을 확인한다. - 현재 문자와 다음 문자가 다르면 카운트를 한다. - 카운트 값에 + 1을 해준다. => 현재 문자와 다음 문자가 다를 경우의 수가 홀수인 경우 짝수로 만들어주기 위해서 - 카운트 값에 + 1을 해줬다면 나누기 2를 해줘 출력한다. => 0 또는 1만을 바꿔주면 되기 때문에 코드 import sys s = list(map(int, sys.stdin.readline().strip())) cnt = 0 # 반복문..

CodingTest/Baekjoon 2021.12.31