일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- 백트래킹
- 프로그래밍
- python
- 동기
- prototype 프로퍼티
- dp
- 메타버스
- float: right
- 유클리드 호제법
- 시간
- 함수 객체의 프로퍼티
- javascript
- 백준 9610번 파이썬 문제 풀이
- css
- 낙관적 업데이트
- C++
- __proto__ 접근자 프로퍼티
- backtracking
- 알고리즘
- 한글 입력 시 이벤트 두 번 발생
- 동적 계획법
- 최소공배수
- 9610
- 한글이 두 번 입력됨
- 비동기
- 파이썬
- 백준
- Tanstack Query
- 2522
- Today
- Total
목록파이썬 (21)
염딩코
[문제] & [결과] [해설] 이 문제는 지난 2480번 문제에서 조금 더 변형된 문제이다. 기본적으로 2480번과 비슷한 구조로 풀이를 했고 다만, arr이라는 리스트를 만들어서 각 사람들의 상금을 저장하고 arr 중 가장 큰 값을 출력하는 식으로 진행했다.
[문제] & [결과] [해설] 이전 문제 4101번과 유사하게 조건만 잘 설정해준다면 쉬운 문제이다.
[문제] & [결과] [해설] 무한반복문을 이용하여 특정 조건을 만족했을 때 반복문을 탈출하는 방식으로 진행한다.
[문제] & [결과] [해설] 이 문제는 3개의 변수들의 관계를 적절하게 이용하여 비교 연산자를 통해 쉽게 풀 수 있는 문제.
[문제] & [결과] [해설] 이 문제는 백준 2609번 문제에 나왔던 유클리드 호제법을 이용해 최대공약수를 먼저 구해야한다. 최소공배수는 두 수를 곱하고 최대공약수로 나누면 얻을 수 있기 때문이다. 그래서 gcd라는 함수를 만들어 두 정수를 매개변수로 받는다. 이전 게시글 중 2609번을 참고하면 gcd, 최대공약수에 대한 추가 설명이 있다. 그렇게 최대공약수를 반환하고 반환된 값을 곱한 두 수로부터 나누면 최소공배수를 얻을 수 있다.
[문제] & [결과] [해설] 이 문제를 배열에 요소들을 추가하는 방식으로 풀었지만, 변수에 바로 저장하고 더하는 식으로 해결해도 좋다. [추가] append를 사용할 때, 1차원 배열이라면 arr[i]식으로 사용할 수 없다.
[문제] & [결과] [해설] 이 문제는 서로 다른 값들의 합이 가장 많을 때, N의 값이 최대가 된다는 것을 알 수 있다. 그렇다면, 1부터 1씩 키운 값들을 더하면 되는 것이다. 1+2+3+4+5+ ... 이렇게 더한 값들이 N보다 작거나 같으면 된다. 1부터 N까지의 합은 밑에서 볼 수 있듯이 i*(i+1)/2로 작성할 수 있다. 마지막에 while반복문의 조건을 벗어나게 되었을 때 i의 값에서 1을 빼줘야 N보다 작거나 같은 조건을 만족하는 i값이 된다.
[문제] & [결과] [해설] 이 문제는 파이썬의 리스트에 내장되어 있는 sort() 메소드를 이용하면 아주 쉽게 풀 수 있다. 그리고 문제 특성상 세 개의 정수라고 했기 때문에 중간에 있는 값은 인덱스 1로 구해주면 된다.
[문제] & [결과] [해설] 이 문제에서 까다로웠던 부분은 입력받을 때, 자료형 구분이 필요한지, 필요없는지였다. 하지만, 그렇게 하면 더 어려워질 것 같아서 문자열로 입력을 받고 인덱스 0인 부분의 자료형만 소수형으로 변환시켜주면 됐다.
[문제] [결과] [해설] 이 문제는 지난 게시글(백준 2525번)에서 다룬 문제와 유사하다. 차이점이라면, 지난 게시글에서는 분을 기준으로 했다면 이번 게시글에 실린 문제에서는 초를 시작으로 문제를 해결해야한다. 원활한 문제풀이를 위해 새로운 변수들을 삽입했다. s1은 입력받은 초와 추가시간인 초를 합하여 나머지만 저장했고, 60초를 초과했을 경우 b1 변수에 그 값을 저장했다. b2에는 초과된 분인 b1과 원래 입력받은 B를 더한 값의 나머지를 저장해 최종적인 분을 저장했다. a1에는 b1과 B의 값을 더하여 초과된 값을 시간으로 간주해 저장했다. a2에는 최종적인 시간을 저장했다.