CodingTest 432

[baekjoon] 백준 2671번(파이썬): 잠수함식별

문제 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 알고리즘 - 정규 표현식을 지원하는 re 모듈을 사용하여 문제를 수행한다. - re.compile() 함수를 통해 () 안 패턴을 컴파일한다. - pattern과 word가 매치되는지 확인 후 매치가 되었다면 잠수함의 엔진 소리의 패턴인 것을 확인할 수 있다. 코드 import sys import re # 정규 표현식을 지원하는 re 모듈사용 word = str(sys.stdin.readline().rstrip("\n")) pattern = re.compi..

CodingTest/Baekjoon 2022.01.11

[baekjoon] 백준 1013번(파이썬): Contact

문제 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 알고리즘 - 정규 표현식을 지원하는 re 모듈을 통해 문제를 수행한다 - 반복문을 통해 테스트 케이스를 확인한다. - re.compile() 함수를 통해 () 안에 패턴을 컴파일한다. - .fullmatch() 함수를 통해 컴파일한 패턴과 현재 테스트 케이스가 매치되는지 확인한다. - 매치가 되면 테스트 케이스는 제시한 패턴으로 'YES'를 출력하고 아니라면 'NO'를 출력한다. 코드 import sys import re # 정규 표현식을 지원하..

CodingTest/Baekjoon 2022.01.10

[baekjoon] 백준 9996번(파이썬): 한국이 그리울 땐 서버에 접속하지

문제 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 알고리즘 - "*" 기준으로 왼쪽 문자열과 오른쪽 문자열로 나눈다. - 반복문을 통해 파일의 이름을 확인한다. - 파일 이름의 길이가 왼쪽, 오른쪽 문자열의 길이보다 작으면 패턴이 일치할 수 없다. - 왼쪽 문자열과 파일의 왼쪽 문자열만큼 자른 문자열이 같고, 오른쪽 문자열과 파일의 오른쪽 문자열만큼 자른 문자열이 같으면 패턴일 일치한 것이다. 코드 import sys n = int(sys.stdin.readline()) ..

CodingTest/Baekjoon 2022.01.09

[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

[programers] 프로그래머스 카카오(파이썬) : [3차] n진수 게임

문제 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 알고리즘 - 반복문을 통해 모든 인원이 미리 구해야 하는 숫자를 n진수로 변환한다. - while문을 통해 i를 n진수로 변환하고 변환한 수를 data에서 뽑아 temp에 추가한다. - 변환한 진수는 reversed를 통해 거꾸로 바꿔야 비로소 우리가 원하는 진수가 된다. - 변환한 진수는 answer에 더하고 필요한 수만큼 나눠 리턴한다. 코드 def solution(n, t, m, p): answer = '0' data = ["0", "..

[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

[programers] 프로그래머스 카카오(파이썬) : [1차] 비밀지도

문제 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 알고리즘 - 두 개의 지도의 10진수를 2진수 n자리로 변환한다. - 반복문을 통해 지도의 각 자리를 비교한다. - 비교 과정에서 각 자리의 수를 더하고, 0보다 크다면 그 자리는 벽이 되고 0이라면 그 자리는 공백이 된다. - 지도의 모든 자리를 확인 후 해독한 암호 지도를 리턴한다. 코드 def solution(n, arr1, arr2): answer = [] temp1 = [format(i, 'b').zfill(n) for i in arr1] ..

[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