프로그래머스(6)
-
다음 큰 숫자
조건에 만족하는 수를 찾기 위해서 입력된 n을 파이썬 bin함수를 이용해 2진수로 변환해줬습니다. 2진수로 변환된 수에 몇개의 '1'이 포함되었는지 .count('1)로 확인해줬습니다. n을 증가시키며 2진수의 '1'의 수가 같은 다음 큰 숫자를 찾습니다. def solution(n): answer = 0 base = 2 a = bin(n) count_one = a.count('1') while 1: n += 1 if bin(n).count('1') is count_one: break answer = n return answer
2019.12.10 -
같은 숫자는 싫어
프로그래머스 같은 숫자는 싫어 문제 풀이 제한사항에 원소 크기 조건이 0~9 여서 arr에 10을 추가시키고 for문을 돌려 현재 선택된 원소와 다음번 원소를 비교하고 같지 않으면 현재 원소의 인덱스를 temp리스트에 넣습니다. temp리스트에 들어간 인덱스를 사용해서 중복된 값을 제거하고 순서를 유지하며 answer를 구했습니다. def solution(arr): answer = [] arr.append(10) temp = [] for i in range(0, len(arr)-1): if arr[i] is not arr[i+1]: temp.append(i) for t in temp: answer.append(arr[t]) return answer
2019.12.03 -
프로그래머스-더 맵게
배열 돌면서 K보다 작은 수가 있으면 제일 작은 수와 그 다음으로 작은 수를 찾아서 계산해줬는데.. 효율성 테스트에서 시간 초과라고한다.. 검색해보니 heapq를 import해서 사용하면 해결이 된다고 해서 코드를 수정- heapq쓰니까 정답처리. 자동으로 배열을 sort해줘서 시간 초과 문제가 생기지 않는다고 한다.
2019.04.27 -
프로그래머스-기능개발
현재 작업에 작업속도만큼 반복해서 더해주고 더해준 횟수를 구한다. 여기서 횟수는 몇 일간 작업했는지를 나타내고 서로 비교해서 return한다. (작업을 일찍 끝냈어도 자신보다 앞의 작업이 끝나지 않았으면 배포 할 수 없다) 더 간단하게 코딩할 수 있겠지만 일단 풀어봤다.
2019.04.23 -
프로그래머스-탑
문제만 잘 이해하면 쉽게 풀 수 있다. 글로 이해하려면 조금 헷갈린다. 그림을 그려보면 더 쉽게 이해 할 수 있다. 입출력 예 1을 예로 들면 아래와 같다. O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 1 2 3 4 5 탑이 위와 같이 있을 때 출력되는 결과는 [0, 0, 2, 2, 4] 이다. 1번째와 2번째는 0 3번째와 4번째는 2 5번째값은 4를 출력했다. 공통점을 찾아보자 1~5순서대로 서로 비교하다가 숫자가 작아지면 큰 숫자를 가진 탑이 기준이 된다. 초기 기준값은 0으로 해서 1번째, 2번째 탑의 기준은 0이다. [0, 0] 2번째 탑이 가지는 값(9)보다 3번째 탑이 가지는 값(5)이 작다. 따라서 기준은 2번째 탑이 된다...
2019.04.20 -
프로그래머스-주식가격
문제 설명을 쉽게 풀이하자면 기준이 되는 수와 나머지 수를 비교하여 숫자가 크거나 같은지 혹은 작은지 알면 되는 문제이다. ex) 배열의 0번째 수 1과 나머지 2, 3, 2, 3 을 비교했는데 모두 1보다 크거나 같으므로 4가 출력되었다. 배열의 2번째 수 3과 나머지 2, 3 을 비교했는데 바로 다음 숫자인 2가 3보다 작고 1초간 숫자(가격)의 변화가 없었으므로 1을 출력한다.
2019.04.19