파이썬 404

[programers] 프로그래머스(파이썬) : 다단계 칫솔 판매

문제 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 알고리즘 - 조직 구성원과 추천인을 딕셔너리형으로 만든다. - 조직 구성원과 구성원들의 이익금을 딕셔너리형으로 만든다. - 반복문을 통해 판매원을 확인한다. - 확인 중인 판매원의 판매 금액을 가지고 반복문을 통해 그 판매원의 추천인을 확인한다. - 현재 판매 금액이 10원보다 적다면 현재 조직 구성원에게 돈을 다 주고 반복을 멈춘다. - 현재 판매 금액이 10원보다 크다면 판매금액에 10%를 제외하고 현재 조직 구성원에게 돈을 준다. - 현재 조직 ..

[baekjoon] 백준 9536번(파이썬): 여우는 어떻게 울지?

문제 9536번: 여우는 어떻게 울지? 각 테스트케이스마다 여우의 울음소리를 한 줄씩, 녹음된 순서대로 출력한다. 여우의 울음소리가 녹음되어 있음이 보장된다. (알려진 것과는 달리, 여우는 모스 부호로 의사소통하지 않는다.) www.acmicpc.net 알고리즘 - 테스트 케이스만큼 반복한다. - 반복문을 통해 동물들의 울음소리를 확인하고 동물들의 울음소리가 아닌 질문이 주어진다면 반복을 멈춰준다. - 동물들의 울음소리라면 녹음된 음성에서 동물들의 울음소리를 반복문을 통해 제거한다. 코드 import sys t = int(sys.stdin.readline()) # 테스트 케이스만큼 반복 for _ in range(t): sound = list(map(str, sys.stdin.readline().spli..

CodingTest/Baekjoon 2022.01.21

[baekjoon] 백준 3048번(파이썬): 개미

문제 3048번: 개미 T초가 지난 후에 개미의 순서를 출력한다. 첫 번째 개미 그룹은 왼쪽에서 오른쪽으로 움직이고, 두 번째 그룹은 반대 방향으로 움직인다. www.acmicpc.net 알고리즘 - 두 개미 그룹 중 첫 번째 그룹의 개미들이 오른쪽으로 움직인다고 생각하며 문제를 수행한다. - t초동안 반복하고 총개미의 길이만큼 반복하여 두 개미 그룹의 위치를 확인한다. - 두 개미 그룹이 만났다면 그 두 개미의 위치를 바꾼다. - 이 반복은 선두 개미의 위치가 바뀌기 전까지 반복하며 선두 개미의 위치가 바뀌었다면 반복을 멈춰준다. 코드 import sys n1, n2 = map(int, sys.stdin.readline().split()) ant1 = list(map(str,sys.stdin.readl..

CodingTest/Baekjoon 2022.01.20

[baekjoon] 백준 2002번(파이썬): 추월

문제 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.acmicpc.net 알고리즘 - 반복문을 통해 들어간 차량은 딕셔너리형으로 나간 차량은 리스트 형식으로 입력받는다. - 반복문을 통해 먼저 들어갔다가 나온 차량보다 더 빨리 나온 차량이 있는지 확인한다. 코드 import sys n = int(sys.stdin.readline()) firstCar = {} out = [] cnt = 0 # 반복문을 통해 들어간 차를 딕셔너리로 입력 받음 for i in range(n): firstCar[str(sys.stdin..

CodingTest/Baekjoon 2022.01.19

[baekjoon] 백준 11478번(파이썬): 서로 다른 부분 문자열의 개수

문제 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 알고리즘 - set 자료 구조를 통해 중복을 제거한다. - 반복문을 통해 부분 문자열을 찾고 부분 문자열이 있다면 temp에 저장한다. - temp의 길이를 출력한다. 코드 import sys s = list(map(str, sys.stdin.readline().rstrip("\n"))) temp = set() # set 자료 구조를 통해 중복을 제거 # 반복문을 통해 부분 문자열을 찾는다. for i in range(len(s)): for j in range(len(s) + 1): # 부분 문자열이 있으면 temp에 저장 i..

CodingTest/Baekjoon 2022.01.18

[baekjoon] 백준 14405번(파이썬): 피카츄

문제 14405번: 피카츄 피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문 www.acmicpc.net 알고리즘 - .replace()를 통해 피카츄가 발음할 수 있는 단어를 띄어쓰기로 바꾼다. - .strip()을 통해 띄어쓰기를 붙였을 때 길이가 0이면 피카츄가 발음할 수 있는 문자열인 것이다. 코드 import sys word = str(sys.stdin.readline().rstrip("\n")) # replace를 통해 "pi", "ka", "chu" 발음을 띄어쓰기로 바꾼다. word = word.replac..

CodingTest/Baekjoon 2022.01.17

[baekjoon] 백준 4959번(파이썬): 비밀번호 발음하기

문제 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 알고리즘 - 반복문을 통해 패스워드를 확인한다. - 우선 모음이 하나라도 있는지 확인 후 없다면 not으로 출력 후 반복을 돌린다. - 모음이 하나라도 있다면 반복문과 조건문을 통해 모음이 3개 혹은 자음이 3개 연속으로 오는지 확인하면서 같은 글자가 연속적으로 두 번 나오는지 확인한다. 이때, ee와 oo는 허용한다. 코드 import sys aeiou = ["a", "e", "i", "o", "u"] # 모음 # 반복문을 통해 패스워드를 확인 wh..

CodingTest/Baekjoon 2022.01.16

[baekjoon] 백준 4889번(파이썬): 안정적인 문자열

문제 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net 알고리즘 - 반복문을 통해 문자열을 확인한다. - 문자열이 '-'가 한 개 이상일 경우 반복문을 멈춘다. - 반복문을 통해 안정적인 문자열을 찾아 pop 한다. - 안정적인 문자열을 제외한 문자열을 안정적인 문자열로 바꿔주면서 카운트한다. 코드 import sys inx = 1 # 반복문을 통해 문자열을 확인 while True: word = list(map(str, sys.stdin.readline().strip())) # 문자열이 "-"가 한 개 이..

CodingTest/Baekjoon 2022.01.15

[programers] 프로그래머스 카카오(파이썬) : [1차] 다트 게임

문제 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 알고리즘 - 계산하기 편하게 하기 위해 "10"을 "A"로 변환한다. - 'S', 'D', 'T'를 리스트에 넣어 각 인덱스 + 1 만큼 제곱할 수 있게 설계한다. - 초기 시작 값을 설정하는데 'A'라면 10으로 초기화하고 그 외 문자라면 int()로 변환하여 초기화한다. - 반복문을 통해 문자를 확인한다. - 문자가 sdt에 포함되어 있다면 현재 수를 인덱스 +1만큼 제곱한다. - 문자가 "*"이라면 현재 수를 두배 해주고 이전에 수가 있다면 이전 수도 두배 해준다. - 문자가 "#"라면 현재 수를 -해준다. - 그 외 문자라면 숫자인 것으로 게임 한판이 끝난 것이다. - 총점수를 answer에 추가해주고 다음 게임의 초기 ..

[baekjoon] 백준 13413번(파이썬): 오셀로 재배치

문제 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 알고리즘 - 반복문을 통해 테스트 데이터를 확인한다. - 반복문을 통해 오셀로 말의 초기 상태와 목표 상태를 확인한다. - 초기 상태와 목표 상태가 다르면 초기 상태를 리스트에 추가한다. - 리스트(cnt) => "B", "W" 중에 제일 많은 개수를 가진 초기 상태의 개수를 출력하면 된다. ex) "B"의 개수가 2이고 "W"의 개수가 1일 때 "B"와 "W"의 자리를 바꿔주면 되고 "B"를 "W"로 뒤집어 주면 된다. 따라서 초기 상태와 목표 상태가 다른 ..

CodingTest/Baekjoon 2022.01.14