Python
오늘밤공부
2023. 7. 12. 11:00
2023. 7. 12. 11:00
🗓️ 문제 설명
- 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 반환해주세요.
- 제한 사항
- prices의 각 가격은 1 이상 10,000 이하인 자연수
- prices의 길이는 2 이상 100,000 이하
- 입출력 예시
prices |
return |
[1, 2, 3, 2, 3] |
[4, 3, 1, 1, 0] |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 20. 11:00
2023. 6. 20. 11:00
🗓️ 문제 설명
- 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 몇 가지인지 알아보고자 합니다.
- 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다.
- 원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다.
- 원형 수열의 모든 원소 elements가 순서대로 주어질 때, 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 반환해주세요.
- 제한 사항
- 3 ≤ elements의 길이 ≤ 1000
- 1 ≤ elements의 원소 ≤ 1000
- 입출력 예시
elements |
result |
[7, 9, 1, 1, 4] |
18 |
💻 코드
최종 코드
코드 풀이
다른 사람 풀이
더보기
풀이 1번
- 2번줄 : elements의 길이를 변수 ll에 저장
- 3번줄 : 세트 res를 생성
- 5번줄 : ll의 길이만큼 반복되는 반복문 실행
- 6번줄 : elements의 i번째 값을 ssum에 저장
- 7번줄 : ssum을 2번에서 생성한 res에 추가
- 8번줄 : i+1에서 i+ll까지 반복되는 반복문 실행
- 9번줄 : ssum에 elements[j%ll]번째 값을 더함
- 10번줄 : 업데이트한 ssum을 res에 추가
- 11번줄 : res의 길이를 반환
오늘밤공부
2023. 6. 16. 11:00
2023. 6. 16. 11:00
🗓️ 문제 설명
- 00연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) X 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다.
- 아이언 슈트는 건전지로 작동하는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다.
- 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 반환하세요.
- 제한 사항
- 숫자 N : 1 이상 10억 이하의 자연수
- 숫자 K : 1 이상의 자연수
- 입출력 예시
💻 코드
최종 코드
코드 풀이
다른 사람 풀이
더보기
풀이 1번
- 이진법의 경우, 홀수번째에 1이 있기 때문에 주어진 n을 이진법으로 변경한 뒤에 '1'의 갯수를 세면 배터리의 최소 사용량을 확인할 수 있습니다.
오늘밤공부
2023. 6. 13. 11:00
2023. 6. 13. 11:00
🗓️ 문제 설명
- 정수 x가 주어졌을 때, x가 회문이라면 true를 회문이 아니라면 false를 반환해주세요.
- 제한 사항
- 입출력 예시
x |
result |
121 |
True |
-121 |
False |
10 |
False |
💻 코드
최종 코드
코드 풀이
오늘밤공부
2023. 6. 6. 10:00
2023. 6. 6. 10:00
🗓️ 문제 설명
- 정수 배열 nums와 정수 target이 주어졌을 때, target과 nums 내의 두 숫자가 같아지는 숫자의 인덱스를 반환해주세요.
- 제한 사항
- 동일한 요소를 두 번 사용할 수 없음
- 각 입력에 정확히 하나의 솔루션이 있음
- 입출력 예시
nums |
target |
result |
[2, 7, 11, 15] |
9 |
[0, 1] |
[3, 2, 4] |
6 |
[1, 2] |
[3, 3] |
6 |
[0, 1] |
💻 코드
최종 코드
코드 풀이
다른 사람 풀이
더보기
풀이 1번
- d = {} : 숫자와 인덱스를 담을 딕셔너리 생성
- for i, j in enumerate(nums) : nums에서 인덱스와 값을 꺼내는 반복문 실행
- r = target - j : target에서 리스트 nums에서 꺼낸 값을 뺀 후 저장
- if r in d : return [d[r], i] : 만약 3번에서 저장한 r이 1번에서 생성한 딕셔너리 d에 있다면 r의 인덱스와 현재 값의 인덱스를 반환
- d[j] = i : 딕셔너리 d에 값과 인덱스를 key-value 형식으로 저장