728x90
반응형

지난포스트 (deprecated)/Algorithm & Data Structure (deprecated) 15

[정렬] 가장큰수 with JS - Lv2

* 프로그래머스 > 코딩테스트연습 > 정렬 > 가장 큰 수 문제설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한사항 - numbers의 길이는 1 이상 100,000 이하입니다. - numbers의 원소는 0 이상 1,000 이하입니다. - 정답이 너무 클 수 있으니 문자열로 바꾸어 retu..

[정렬] K번째 수 with JS - Lv1

* 프로그래머스 코딩테스트 연습 > 정렬 > K번째 수 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 3. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작..

[코딩테스트 연습] 위장 ★★

위장 링크 입출력 예 clothes return [ ["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"] ] 5 [ ["crow_mask", "face"], ["blue_sunglasses", "face"], ["smokey_makeup", "face"] ] 3 풀이 function solution (clothes) { let newArr = clothes.map(a => a[1]); let unique = newArr.filter(function(item, pos) { return newArr.indexOf(item) == pos; }); let result = {}; let numberCase =..

[코딩테스트연습] 완주하지 못한 선수 ★

완주하지 못한 선수 링크 입출력 예 participant completion return ["leo", "kiki", "eden"] ["eden", "kiki"] "leo" ["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko" ["mislav", "stanko", "mislav", "ana"] ["stanko", "ana", "mislav"] "mislav" 처음 생각했던것 참가자의 수가 더 많으니까 참가자의 수만큼 반복을 돌리면서 완주한 배열과 비교하면 되겠구나 했는데 계속 undefined 가 떴는데... 배열의 순서가 다른 상태에서 진행하니까 아무래도 구조적인 문제가... 그래..

2017 카카오 신입 공채 1차 코딩테스트 문제 풀이 (1번)

문제 설명 1. 비밀 지도(난이도: 하) 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 “공백”(“ “) 또는 “벽”(“#”) 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 “지도 1”과 “지도 2”라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. “지도 1”과 “지도 2”는 각각 정수 배열로 암호화되어 있다...

python - 숫자 맞추기 게임(★☆☆☆☆)

문제 1과 20 사이의 숫자를 맞추는 게임 1. 프로그램을 실행하면 "기회가 *번 남았습니다. 1-20 사이의 숫자를 맞춰보세요: " 가 출력 2. 총 4번의 기회 3. 정답을 맞추면 "축하합니다. *번만에 숫자를 맞추셨습니다." 가 출력 프로그램 종료 4. 사용자가 입력한 수가 정답보다 작을경우 "Up"이 출력 그 반대일경우 "Down"이 출력 5. 정답이 틀리면 1번부터 다시 진행 4번의 기회 모두 틀리면 "아쉽습니다. 정답은 *였습니다." 출력 프로그램 종료 풀이 from random import randint # 기회는 4번 # 1~20사이의 난수 count = 4 quiz = randint(1, 20) while count >= 1: num = int(input('기회가 {}번 남았습니다. 1~..

python - 거스름돈 계산기(★☆☆☆☆)

문제 cost원 짜리 물건을 사기위해 payment원을 냈다면 5만원권 1만원권 5천원권 1천원권 각각 몇장 씩 거스름돈을 주면되는지 구하라 풀이 def calculate_change(payment, cost): # 코드를 작성하세요. change = payment - cost fifty_thousand_count = int(change / 50000) print("%d원 지폐: %d장" % (50000, fifty_thousand_count)) change = change % 50000 ten_thousand_count = int(change / 10000) print("%d원 지폐: %d장" % (10000, ten_thousand_count)) change = change % 10000 five_t..

python - 정렬 (★☆☆☆☆)

문제 배열 array의 i 번째 숫자부터 j 번째 숫자까지 자르고 정렬했을때, k번째에 있는 수 구하기 array = [1, 5, 2, 6, 3, 7, 4] commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]] - 2번째부터 5번째 숫자까지 자르고 정렬했을때 3번째 자리수 - 4번쨰부터 4번째 숫자까지 자르고 정렬 1번째 수 - 1번째부터 7번째까지 자르고 정렬 후 3번째 수 def solution(array, commands): answer = [] return answer 풀이 def solution(info, commands): answer = [] for i in range(len(commands)): test = info[commands[i][0] -1:commands..

python - 가운데 글자 가져오기(★☆☆☆☆)

문제 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. def solution(s): return 풀이 def solution(s): if len(s) % 2 == 0: center = len(s) // 2 return s[center-1:center + 1] else: center = len(s) // 2 return s[center] print(solution('abcde')) print(solution('qwerty65')) 다른사람의 풀이 def string_middle(str): return str[(len(str)-1)//2:len(str)//2+1] print(string_middle('ab..

python - 리스트 활용 문제

특정 문자 출력 a = ['Life', 'is', 'too', 'short', 'you', 'need', 'python'] print(a[4], a[2]) 추출한 문자열 합print("%s %s %s %s" % (a[0], a[1], a[2], a[3])) result = " ".join(a) print(result) string_sum = "" for i in range(0,4): string_sum = string_sum + " " + a[i] print(string_sum) 리스트의 갯수 b = [1, 2, 3] print(len(b)) 리스트의 append와 extendb.append([4,5]) print(b) # [1, 2, 3, [4, 5]] b.extend([4, 5]) print(b) #..

728x90
반응형