본문 바로가기

프로그래머스66

프로그래머스 Lv2 숫자의 표현 (python) 숫자의 표현 풀이 for 문과 while문을 사용했다. 1. 우선 자기자신인 방법이 있으니 answer = 1로 등록 2. for 문으로 1, n//2 까지 확인 하기 n//2 + 1 이후로는 값을 더하게 되면 n을 넘어버리니까 3. while 문에서 sum_v == n이 되면 answer += 1 하고 break 후 다시 for문 돌기 4. for문 완료후 answr 반환 def solution(n): # 자기자신인 방법이 있으니까 answer = 1 # 1~ n//2까지 돌아가며 확인 for i in range(1, n//2+1): sum_v = i j = i+1 while sum_v < n: sum_v += j if sum_v == n: answer += 1 break j += 1 return an.. 2024. 2. 3.
프로그래머스 Lv1 콜라 문제 (python) 콜라 문제 풀이 문제의 상위 지문을 잘 못 이해하고 있어서 시간이 조금 걸렸다. 그것만 아니었다면 금방 풀었다. 빈 병을 주면 그것으로 총 몇 개의 콜라로 바꿔먹을 수 있냐를 제시한 문제이다. 모든 받은 콜라의 개수를 기록한 변수를 지정. while문을 돌면서 빈 병을 바꿀 수 있는 개수로 divmod를 이용해 파악하고 바꿀 수 있는 개수를 coke로 곱하면 이번에 바꾼 콜라 수 빈병은 못 바꾼 빈 병과 함께 바꾼 콜라를 비웠으니 이를 합하면 다시 빈 병이 됨 이 while문은 현재 가진 빈병이 바꿀 수 있는 빈병보다 적지 않을 때까지 반복. 모든 바꿔먹은 콜라 갯수를 return # 3개를 가져다주면 2개를 주는 경우도 생각해봐야함 def solution(bottle, coke, empty_coke):.. 2024. 2. 3.
프로그래머스 Lv1 달리기 경주 (python) 달리기 경주 풀이 처음엔 위 문제를 보고 간단하게 a[0],a[1] = a[1], a[0] 을 사용하면 되겠다 하고 아래 처럼 풀었다. 그런데 시간초과가 발생했다.... # 자기 바로 앞의 선수를 추월 할 추월한 선수의 이름을 부름 # 만약 현재 2등 선수의 이름이 불러졌다번 1등 선수를 제치고 1등이 된거니 # win[1], win[2] = win[2], win[1] 이 됨 def solution(players, callings): N = len(callings) for i in range(N): k = players.index(callings[i]) players[k], players[k-1] = players[k-1], players[k] return players 그래서 다른 방법을 찾았다. 딕셔.. 2024. 2. 2.
프로그래머스 Lv1 명예의 전당 (1) (python) 명예의 전당 (1) 풀이 머리가 꼬인 상태여서 어떻게 풀어야지 하다가, 몇 번 틀리고 맞췄다. sorted()를 이용해 줬다. 더 좋은 방법이 있을 것이라 생각했는데, 다른 살마 풀이를 보니 좋은 풀이가 있었다. 우선 명예의 전당이 안 찼을 때, 찼을 때로 나눠주고, 찼을 때도, min(honor)의 값이 score [i]보다 작을 때, 클 때를 구분해 주었다. 그렇게 정리한 코드가 아래 코드이다. # k번째 순위의 가수 점수보다 더 높으면 출연 가수의 점수가 명예의 전당에 오르고, k번째 순위의 점수는 내려옴. # 매일 '명예의 전당' 최하위 점수를 발표. k = 3, def solution(k, score): # 1일차 발표와 스코어 입력 honor = [score[0]] announce = [sco.. 2024. 2. 2.
프로그래머스 Lv1 바탕화면 정리 (python) 바탕화면 정리 풀이 파일이 인덱스와 인덱스 사이에 있으므로 이 부분에 대해서만 확인 하면 문제가 생기진 않을 듯하다. 좌상에서 우하로 드래그를 하도록 한다 가정하자. 파일또한 각 정확한 인덱스에 있다고하면, 우하의 위치만 각 +1, +1 해주면 문제가 없다. 이를 바탕으로 가장 위, 가장 왼쪽, 가장 아래, 가장 오른쪽 의 위치만 찾아주고, 아래와 오른쪽에만 각 +1해주면 해결된다. 난 아래처럼 풀었다. # '#'의 의 실제 인덱스는 i~i+1 까지 안에 있음 드래그를 통하기 때문, 이를 조정필요. # 모든 파일을 드래그 할 수 있는 한 번의 값 # 맨 왼쪽과 위는 실제 인덱스를 맨 오른쪽과 아래는 실제 인덱스+1을해주자. # 처음에 [맨 위, 맨 왼, 맨 아래, 맨 오른]을 하고 return시에는 맨 .. 2024. 2. 2.
프로그래머스 Lv1 조건에 맞는 회원수 구하기 (MySQL) 조건에 맞는 회원수 풀이 SELECT COUNT(USER_ID) FROM USER_INFO WHERE LEFT(JOINED, 4) = 2021 AND AGE BETWEEN 20 AND 29; 2024. 2. 2.