일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 한글이 두 번 입력됨
- C++
- 백준 9610번 파이썬 문제 풀이
- float: right
- 2522
- css
- 9610
- 메타버스
- 한글 입력 시 이벤트 두 번 발생
- 파이썬
- 백트래킹
- 함수 객체의 프로퍼티
- 낙관적 업데이트
- 자바스크립트
- 알고리즘
- 동적 계획법
- Tanstack Query
- 유클리드 호제법
- python
- 시간
- backtracking
- dp
- javascript
- __proto__ 접근자 프로퍼티
- 동기
- 최소공배수
- prototype 프로퍼티
- 비동기
- 백준
- 프로그래밍
- Today
- Total
목록알고리즘 PS/Python (25)
염딩코
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9PAmO/btrtKCpH0wS/rw3Rw8Uk1su5PghzsOv7zK/img.png)
[문제] & [결과] [해설] 이 문제는 지난 2480번 문제에서 조금 더 변형된 문제이다. 기본적으로 2480번과 비슷한 구조로 풀이를 했고 다만, arr이라는 리스트를 만들어서 각 사람들의 상금을 저장하고 arr 중 가장 큰 값을 출력하는 식으로 진행했다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/338Y5/btrtHVDt2Xl/bDgSioFNAZZkSMiyAAvSfK/img.png)
[문제] & [결과] [해설] 이전 문제 4101번과 유사하게 조건만 잘 설정해준다면 쉬운 문제이다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWykRp/btrtLyHlNea/j9BAofqy0cdeKLUnU4PhFK/img.png)
[문제] & [결과] [해설] 무한반복문을 이용하여 특정 조건을 만족했을 때 반복문을 탈출하는 방식으로 진행한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c7tGsS/btrtCmWo6GM/uZHhKeLh2lSoPS8wSyFrYk/img.png)
[문제] & [결과] [해설] 이 문제는 3개의 변수들의 관계를 적절하게 이용하여 비교 연산자를 통해 쉽게 풀 수 있는 문제.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmoVsA/btrtB7DlVSS/4RFHUGYbP780rUJ7zYbHAK/img.png)
[문제] & [결과] [해설] 이 문제는 백준 2609번 문제에 나왔던 유클리드 호제법을 이용해 최대공약수를 먼저 구해야한다. 최소공배수는 두 수를 곱하고 최대공약수로 나누면 얻을 수 있기 때문이다. 그래서 gcd라는 함수를 만들어 두 정수를 매개변수로 받는다. 이전 게시글 중 2609번을 참고하면 gcd, 최대공약수에 대한 추가 설명이 있다. 그렇게 최대공약수를 반환하고 반환된 값을 곱한 두 수로부터 나누면 최소공배수를 얻을 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJk1rG/btrtBORysjB/7buBaeJIEOudXC1ek0kY81/img.png)
[문제] & [결과] [해설] 이 문제를 배열에 요소들을 추가하는 방식으로 풀었지만, 변수에 바로 저장하고 더하는 식으로 해결해도 좋다. [추가] append를 사용할 때, 1차원 배열이라면 arr[i]식으로 사용할 수 없다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bFFeJB/btrtBO42rsJ/AcOhTPuC1bIKGnCLUNWAXK/img.png)
[문제] & [결과] [해설] 이 문제는 서로 다른 값들의 합이 가장 많을 때, N의 값이 최대가 된다는 것을 알 수 있다. 그렇다면, 1부터 1씩 키운 값들을 더하면 되는 것이다. 1+2+3+4+5+ ... 이렇게 더한 값들이 N보다 작거나 같으면 된다. 1부터 N까지의 합은 밑에서 볼 수 있듯이 i*(i+1)/2로 작성할 수 있다. 마지막에 while반복문의 조건을 벗어나게 되었을 때 i의 값에서 1을 빼줘야 N보다 작거나 같은 조건을 만족하는 i값이 된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dupNaT/btrtzaUd4hj/dK6PiWi6cYw4G03p8huqJ1/img.png)
[문제] & [결과] [해설] 이 문제는 파이썬의 리스트에 내장되어 있는 sort() 메소드를 이용하면 아주 쉽게 풀 수 있다. 그리고 문제 특성상 세 개의 정수라고 했기 때문에 중간에 있는 값은 인덱스 1로 구해주면 된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dKQUT9/btrtxqiC8ld/jg7cOpGS0b2MykXnigB791/img.png)
[문제] & [결과] [해설] 이번 문제는 딱히 어려운 것이 없어서 해설은 생략하도록 하겠다. 5355번 문제의 하위 문제라고 생각하면 좋을 것 같다.