본문 바로가기

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

[프로그래머스] 정수 제곱근 구하기 문제 https://programmers.co.kr/learn/courses/30/lessons/12934 내가 생각했던 풀이과정 1. 처음 생각한 것은 제곱근을 확인하기 위해 나눴을 때 정수형인지 판별하려 했으나 나눴을 때 실수형(float) 형태로 나오기 때문에 다른 방법을 생각했습니다. 두번째로 생각한 점은 제곱근을 했을 때 만약 정수가 나왔다면 int 형태로 바꾼 다음 다시 제곱을 하여도 n이랑 같아야 하기 때문에 그 방식을 사용하였습니다. 2. 만약 정수의 제곱이면 정수(제곱근)에 1을 더한 수를 제곱한수를 리턴 3. 정수의 제곱이 아니면 -1 을 리턴 나의 풀이 def solution(n): result = 0 temp = n**(1/2) if int(temp)**2 == n: result =.. 2021. 5. 28.
[프로그래머스] 로또의 최고 순위와 최저 순위 문제 https://programmers.co.kr/learn/courses/30/lessons/77484 내가 생각했던 풀이과정 1. 일단 0의 갯수를 셉니다. 0의 갯수를 세어야하는 이유는 0의 숫자만큼 숫자가 지워졌을 때 두 가지 경우로 나눠지기 때문 입니다. 1) 최선의 조건일 때는 0 대신에 로또 당첨 숫자에 맞는 숫자를 넣을 수 있습니다. 2) 최악의 조건일 때는 0 대신에 로또 당첨 숫자에 맞지 않는 숫자를 넣을 수 있습니다. 2. 두번째로 0을 제외한 경우 맞은 갯수를 셉니다. 3. 최선의 경우: 0의 갯수 대로 1) 조건일 때는 맞은 갯수에 0의 갯수를 더해줍니다. 최악의 경우: 0의 갯수와 상관없이 맞은 갯수가 그대로 당첨 숫자와 일치한 갯수가 되게 됩니다. 4. 순위를 매겨야하기 때문.. 2021. 5. 28.
[프로그래머스] 더 맵게 1. 문제 programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 2. 내가 생각했던 첫번째 풀이과정 1) 가장 맵지 않은 음식과 두번째로 맵지 않은 음식을 골라야하니 일단 배열을 정렬한다 2) 가장 맵지 않은 음식과 두번째로 맵지 않은 음식을 계산을 한다 3) 계산을 한 이후에는 첫번째 요소를 pop을 해주면서, 계산한 값을 첫번째 요소에 넣고, count를 올린다 이럴 경우, 테스트케이스는 맞았으나 시간초과가 되어.. 2021. 5. 4.
[프로그래머스] 가장 큰 수 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.