CodingTest/Programers 33

[programers] 프로그래머스(파이썬) : 성격 유형 검사하기

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 성격 유형을 비교한 후 점수를 부여한다. - 비교를 모두 한 후 성격 유형의 점수와 이름순에 따라 성격 유형을 완성한다. 코드 def solution(survey, choices): answer = '' dic = {"R": 0, "T": 0, "C": 0, "F": 0, "J": 0, "M": 0, "A": 0, "N": 0} n = len(survey) for i in range(n): x, y = survey[i].strip() if choices[i] < 4: dic[x] += 4 -..

[programers] 프로그래머스(파이썬) : 가장 큰 수

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 정수형의 리스트를 문자열의 리스트로 치환한다. - 치환한 리스트를 내림차순으로 정렬한다. - 정렬하는 과정을 보면 lambda x : x*3을 통해 수행한다. - x*3은 num 인자 각각의 문자열을 3번 반복한다는 뜻이다. - num의 인수 값이 1000이하이므로 3자리수로 맞춘 뒤 비교한다. 코드 def solution(numbers): answer = list(map(str, numbers)) answer.sort(reverse=True, key=lambda x: x*3) return ..

[programers] 프로그래머스(코틀린) : 크레인 인형뽑기 게임

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 반복문을 통해 크레인의 위치를 이동한다. - 반복문을 통해 크레인으로 뽑을 수 있는 인형을 확인 후 뽑는다. - 뽑은 인형의 개수가 2개 이상이라면 맨 위에 2개의 인형을 비교한다. - 비교 후 같다면 pop() 한 후 인형의 개수만큼 카운트한다. 코드 import java.util.* class Solution { fun solution(board: Array, moves: IntArray): Int { var answer = 0 val pickUp = Stack() for (move in..

[programers] 프로그래머스(파이썬) : 크레인 인형뽑기 게임

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 반복문을 통해 크레인의 위치를 이동한다. - 반복문을 통해 크레인으로 뽑을 수 있는 인형을 확인 후 뽑는다. - 뽑은 인형의 개수가 2개 이상이라면 맨 위에 2개의 인형을 비교한다. - 비교 후 같다면 pop() 한 후 인형의 개수만큼 카운트한다. 코드 def solution(board, moves): answer = 0 pick_up = [] # 반복문을 통해 크레인의 위치를 이동 for move in moves: # 크레인이 뽑을 수 있는 인형을 확인 for i in range(len(b..

[programers] 프로그래머스(파이썬) : 가장 먼 노드

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 그래프를 표현한 후 bfs 탐색을 통해 문제를 수행한다. - 이때 가까운 노드부터 탐색하기 위해 deque를 사용해준다. 코드 from collections import deque def solution(n, edge): graph = [[] for _ in range(n+1)] visited = [0 for _ in range(n+1)] for a, b in edge: graph[a].append(b) graph[b].append(a) queue = deque([1]) visited[1] ..

[programers] 프로그래머스(파이썬) : 기능개발

문제 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 알고리즘 - 반복문을 통해 모든 작업이 완료될 때까지 작업을 한다. - zip을 통해 현재 작업 진도를 작업 속도와 더한다. - 현재 작업 진도가 100보다 크거나 같다면 현재 모든 작업 진도가 100보다 크거나 같은 것을 리스트에서 빼준다. - 이때 빠진 작업의 개수를 answer에 추가한다. - 모든 작업이 완료했다면 answer를 출력한다. 코드 def solution(progresses, speeds): answer = [] while pro..

[programers] 프로그래머스(파이썬) : 숫자 문자열과 영단어

문제 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 알고리즘 - 숫자와 문자열을 딕셔너리로 만들고 문제를 수행한다. - 반복문을 통해 숫자면 숫자를 문자열로 더한다. - 숫자가 아니라면 temp에 저장하고 저장된 문자열이 딕셔너리 키 값이라면 벨류 값을 더한다. - 모두 더한 값을 정수형으로 출력한다. 코드 def solution(s): answer = "" dic = {"zero" : "0", "one" : "1", "two" : "2", "three" : "3", "four" : "4", "f..

[programers] 프로그래머스(파이썬) : 124 나라의 숫자

문제 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 알고리즘 - 3진수로 확인하는 방법과 유사하게 문제를 수행한다. - 다른 점이라면 3으로 나누어 떨어졌을 때 0으로 자리 이동을 안 해주기 위해 n-1을 해준다.(0이 없기 때문이다.) 코드 def solution(n): answer = '' numbers = ['4', '1', '2'] # 3진수로 확인 => 다른점은 3으로 나누어 떨어질 때 n - 1를 해준다.(0이 없기 때문.) while n > 0: n, mod = divmod(n, 3) # 몫, 나머지 answer = numbers[mod] + answer # 나머지가 0이라면 3으로 나누어 떨어 진 것으로 자릿수 이동 x if mod == 0: n -= 1 retur..

[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) # 반..