본문 바로가기

알고리즘/프로그래머스27

[프로그래머스] 가장 큰 수 1. 문제 programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 2. 내가 생각했던 첫번째 풀이과정(시간 초과) 1) permutation을 이용해서 모든 리스트의 조합을 구합니다 2) permutation을 이용하면 결과가 튜플이기 때문에 for문을 이용하여 map 함수를 이용해 튜플을 문자열을 숫자로 바꿉니다 temp = list(map(str ,list_per.. 2021. 5. 2.
[프로그래머스] 폰켓몬 1. 문제 programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 2. 내가 생각했던 풀이과정 1) 같은 포켓몬은 같은 종류로 치기 때문에 중복을 없애기 위해서 set( ) 을 이용하였습니다 2) 폰켓몬의 종류가 n / 2보다 작을 때는 폰켓몬의 종류를 return 해주고, 폰켓몬의 종류가 n/2 보다 클 경우에는 n/2를 return 해줍니다 3. 나의 풀이 def solution(nums): set_nums = set(num.. 2021. 4. 30.
[프로그래머스] 두 개 뽑아서 더하기 1. 문제 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 2. 내가 생각했던 풀이과정 1) 2개를 뽑아야 하니 이중 for 문을 이용하여 숫자 2개를 뽑고, 더한 값을 리스트에 넣는다. 2) 더한 값의 중복을 없애기 위해 set 자료형을 이용한다. 3) set 자료형을 list로 바꾼 후에 sorted( ) 함수를 이용해 오름차순으로 정렬한다. 3. 나의 풀이 def sol.. 2021. 4. 28.
[프로그래머스] 다음 큰 숫자 1. 문제 programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 2. 내가 생각했던 풀이과정 1) 조건 1에 따라 n보다 큰 자연수이어야 하니까 n + 1로 n보다 큰 자연수를 만들어준다 2) 1의 갯수가 같아야하기 때문에 2진수로 변환해야 한다 3) 2진수로 변환해서 count( ) 함수를 통해 1의 갯수를 파악해야한다 4) n보다 큰 자연수를 + 1씩 해주면서 2진수로 변환했을 때, 1의 숫자.. 2021. 4. 26.