programers 35

[programers] 프로그래머스(파이썬) : 오픈채팅방

문제 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 알고리즘 - 반복문을 통해 입력 값을 확인한다. - 입력 값의 따라서 uid 값의 닉네임을 추가/변경하고 temp에 상태와 uid 값을 추가한다. - 반복문을 통해 상태와 uid의 닉네임을 answer에 추가하여 출력한다. 코드 # 01:12 => 01:27 def solution(record): answer = [] temp = [] uid = {} # 반복문을 통해 입력 값을 확인 for i in record: i = i.split(" ") # 입력 값..

[programers] 프로그래머스(파이썬) : 문자열 압축

문제 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 알고리즘 - 반복문을 통해 문자열 압축 길이를 변경한다. - 반복문을 통해 문자열을 확인한다. - 문자열을 압축하여 값을 비교한다. - 값이 같으면 cnt를 카운트한다. - 값이 다르다면 cnt에 따라 res에 문자열을 추가한다. - 문자열을 추가했다면 문자열 압축 길이를 새롭게 초기화한다. - 반복문이 끝나면 문자열 압축 길이가 최소인지 비교한다. 코드 # 16:20 => 17:18 def solution(s): answer = len(s) # 반..

[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..