Python 390

[baekjoon] 백준 5555번(파이썬): 반지

문제 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net 알고리즘 - 반복문을 통해 반지를 확인한다. - 반지는 시작과 끝이 연결된 상태이므로 (반지 + 반지)를 해줘 문제를 수행하기 편하게 바꾼다. - 반복문을 통해 찾고자 하는 문자열이 반지에 포함되어 있는지 확인한다. - 찾고자 하는 문자열이 반지에 포함되어 있으면 카운트한 후 반복을 멈춘다. 코드 import sys word = list(map(str, sys.stdin.readline().rstrip("\n"))) n = int(sys.stdin.readline()..

CodingTest/Baekjoon 2022.01.13

[baekjoon] 백준 1251번(파이썬): 단어 나누기

문제 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 알고리즘 - 반복문을 통해 세 개의 단어로 자를 수 있는 모든 경우의 단어를 구한다. - 모든 경우의 단어를 뒤집은 후 다시 원래 순서로 합친 후 리스트에 추가한다. - 사전 순으로 가장 앞선 단어를 출력하기 위해 리스트에서 제일 작은 단어를 출력한다. 코드 import sys word = list(map(str, sys.stdin.readline().rstrip("\n"))) res = [] # 반복문을 통해 세 개의 단어로 자른다. for i in ran..

CodingTest/Baekjoon 2022.01.12

[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