CodingTest 432

[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

[baekjoon] 백준 1120번(파이썬): 문자열

문제 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 알고리즘 - 두 문자열 길이의 차이만큼 반복하여 a의 문자열과 b의 문자열을 비교한다. - 비교하는 과정으로는 b의 인덱스를 +1 해주면서 a의 문자열과 비교한다. - 비교 과정에서 a의 문자와 b의 문자가 다르면 카운트해준다. - 가능한 비교를 모드 끝낸 후 다른 문자열 개수가 제일 작은 경우를 출력한다. 코드 import sys a, b = map(str, sys.stdin.readline().split()) re..

CodingTest/Baekjoon 2021.12.30

[baekjoon] 백준 2857번(파이썬): FBI

문제 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net 알고리즘 - 반복문을 통해 5명의 첩보원명을 확인한다. - 반복문과 조건문을 통해 FBI 요원을 찾는다. - FBI 요원을 찾으면 해당 번호를 리스트에 추가하고 반복을 멈춘다. - 모든 첩보원명을 확인했으면 FBI 요원의 유무에 따라 출력한다. 코드 import sys cnt = [] # FBI 요원의 번호 # 반복문을 통해 5명의 첩보원명을 확인 for i in range(5): word = list(map(str, sys.stdin.readline().strip())) # 반복문과 조건문을 통해 FBI 요원을 찾는다..

CodingTest/Baekjoon 2021.12.29

[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