CodingTest/Programers 33

[programers] 프로그래머스(파이썬) : 방문 길이

문제 코딩테스트 연습 - 방문 길이 programmers.co.kr 알고리즘 - 반복문을 통해 명령어를 수행한다. - 이동해야 하는 좌표가 범위 내에 있다면 명령어를 수행한다. - 현재 위치와 이동 후 위치, 이동 후 위치와 현재 위치를 answer에 추가한다. - answer는 set()의 자료구조를 갖고 있어 중복을 제거한다. - 명령어를 다 수행하고 answer를 2로 나눴을 때 몫을 출력한다. 코드 # 11:30 => 12:01 def solution(dirs): answer = set() # set()을 통해 중복을 제거 d = {"U" : [1, 0], "D" : [-1, 0], "R" : [0, 1], "L" : [0, -1]} x, y = 0, 0 # 반복문을 통해 명령어를 수행 for i..

[programers] 프로그래머스(파이썬) : 스킬트리

문제 코딩테스트 연습 - 스킬트리 programmers.co.kr 알고리즘 - 반복문을 통해 스킬 트리와 스킬을 확인한다. - 스킬 중에 선행 스킬이 있다면 temp에 저장, 이미 있다면 저장하지 않는다. - temp와 선행 스킬을 비교 후 카운트한다. - 카운트 한 값을 출력한다. 코드 # 10:51 => 11:09 def solution(skill, skill_trees): answer = 0 # 반복문을 통해 스킬 트리를 확인 for i in skill_trees: temp = [] # 반복문을 통해 스킬 확인 for j in i: # 스킬이 선행 스킬이라면 temp에 저장, 이미 있다면 저장하지 않는다. if j in skill and j not in temp: temp.append(j) # te..

[programers] 프로그래머스(파이썬) : 점프와 순간 이동

문제 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 알고리즘 - 0부터 n까지 가는 최소 비용은 n부터 0까지 가는 최소 비용과 같다. - n이 짝수라면 비용이 들지 않는다.(*2 이기 때문에) - n이 홀수라면 한 칸 점프한다. - n이 2보다 클 때까지만 반복한다. - 반복문이 끝나고 비용을 출력한다. 코드 def solution(n): ans = 1 # n부터 0까지 가는 최소 비용 구하기 while n > 2: # n이 짝수라면 비용이 들지 않는다. if n % 2 == 0: ..

[programers] 프로그래머스(파이썬) : 영어 끝말잇기

문제 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 알고리즘 - 반복문을 통해서 단어를 확인한다. - 규칙에 어긋나면 반복을 멈춘다. - 확인한 단어와 입력받은 단어가 같으면 틀린 사람이 없는 것이다. - 틀린 사람의 번호와 차례는 ..

[programers] 프로그래머스(파이썬) : 배달

문제 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 알고리즘 - bfs 탐색을 통해 문제를 수행한다. 코드 # 23:15 import sys from collections import deque def solution(N, road, K): answer = 0 graph = [[] for _ in range(N + 1)] visited = [sys.maxsize] * (N + 1) visited[1] = 0 for a, b, c in road: graph[a].append([b, c..

[programers] 프로그래머스(파이썬) : 신규 아이디 추천

문제 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 알고리즘 - 단계별로 알고리즘을 작성하면 된다. - 다른 사람들의 풀이를 보니 정규표현식에 대해 공부를 해야 할 것 같다. 코드 # 21:20 def solution(new_id): answer = '' l = len(new_id) # 반복문을 통해 id를 확인 for i in range(l): # 1단계 if new_id[i].isupper(): answer += new_id[i].lower() # 3단계 elif len(answer) > 0 an..

[programers] 프로그래머스(파이썬) : 로또의 최고 순위와 최저 순위

문제 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 알고리즘 - 반복문을 통해 로또 번호를 확인한다. - 로또 번호가 당첨 번호라면 최고 순위 번호의 카운트, 아니라면 최저 순위 번호의 카운트한다. - 최고 순위일 때의 랭크와 최저 순위일 때의 랭크를 출력한다. 코드 def solution(lottos, win_nums): answer = [lottos.count(0), 6] rank = [6, 6, 5, 4, 3, 2, 1] cnt = 0 # 반복문을 통해 로..

[programers] 프로그래머스(파이썬) : 소수 만들기

문제 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 알고리즘 - 반복문을 통해 3개의 수를 확인한다. - 3개의 수를 더한 값이 소수라면 카운트한다. 코드 def primenumber(x): for i in range(2, x):# 2부터 x-1까지의 모든 숫자 if x % i == 0:# 나눠떨어지는게 하나라도 있으면 False return False return True def solution(nums): answer = 0 # 반복문을 통해 3가지 수를 확인 for i in rang..

[programers] 프로그래머스(파이썬) : 신고 결과 받기

문제 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 알고리즘 - 딕셔너리 형으로 신고받은 사람을 카운트한다. - 신고받은 사람의 횟수가 k개 이상일 경우 신고 한 사람을 카운트한다. 코드 def solution(id_list, report, k): id_dict = {i: 0 for i in id_list} report = list(set(report)) for i in range(len(report)): a, b = report[i].split(" ") id_dict[b] += 1 temp = []..

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

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