일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dp
- 시간
- 동기
- 파이썬
- float: right
- javascript
- 자바스크립트
- 백트래킹
- 낙관적 업데이트
- 한글이 두 번 입력됨
- Tanstack Query
- 백준 9610번 파이썬 문제 풀이
- 유클리드 호제법
- backtracking
- 프로그래밍
- 함수 객체의 프로퍼티
- 동적 계획법
- 한글 입력 시 이벤트 두 번 발생
- 최소공배수
- __proto__ 접근자 프로퍼티
- 백준
- 9610
- 메타버스
- css
- prototype 프로퍼티
- python
- 2522
- 비동기
- C++
- 알고리즘
- Today
- Total
목록알고리즘 PS (63)
염딩코
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dKQUT9/btrtxqiC8ld/jg7cOpGS0b2MykXnigB791/img.png)
[문제] & [결과] [해설] 이번 문제는 딱히 어려운 것이 없어서 해설은 생략하도록 하겠다. 5355번 문제의 하위 문제라고 생각하면 좋을 것 같다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CTaOV/btrtt3IZ37H/nSrWpa9W7CKAX1FF48UtJk/img.png)
[문제] & [결과] [해설] 이 문제에서 까다로웠던 부분은 입력받을 때, 자료형 구분이 필요한지, 필요없는지였다. 하지만, 그렇게 하면 더 어려워질 것 같아서 문자열로 입력을 받고 인덱스 0인 부분의 자료형만 소수형으로 변환시켜주면 됐다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJ776c/btrtzbZNl9Z/YRe9xMQfKjybCFext20GQ0/img.png)
[문제] [결과] [해설] 일단, 이 문제에서 가장 중요한 포인트는 출력 단계에서 '적어도 몇 곡이 저작권이 있는 멜로디인지'이다. 위의 문제처럼 엘범에 저작권이 있는 멜로디가 894개가 있고 평균값이 23.53이면 올림하여 24가 된다고 했다. 만약 평균이 정확하게 23이고 여기에 1개의 곡을 더한다면 평균은 23.xx가 될 것이다. 23을 올림할 수는 없지만, 23.xx는 올림하면 24이기 때문에 1개의 곡을 더해야 '적어도'를 만족시켜줄 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/clWXGX/btrtt5FkBUX/flGizAU1CekVZ5657tJXP1/img.png)
[문제] [결과] [해설] 정수형 배열에 9권의 가격을 넣고 총 가격에서 하나씩 빼면 마지막 한 권의 가격을 구할 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cYa2mf/btrtsFfqmI3/sk26WxT2qTy7DyVB38hjhk/img.png)
[문제] [결과] [해설] Fibonacci 수열은 num이 커질수록 값이 급속도로 증가하므로 자료형은 long long을 사용한다. 문제에서 설명해준대로 첫 번째, 두 번째에는 1로 값을 정해준다. 그리고 첫 번째나 두 번째가 아닐 때는 fibo(num-1) + fibo(num-2) 처럼 작성해주면 끝!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bpB5fU/btrtlriyrK0/Xfhk2y8MY4q4LurgVZdpL0/img.png)
[문제] [결과] [해설] 유클리드 호제법(유클리드 알고리즘)은 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 두 수가 서로 상대방의 수를 나누어서 결과적으로 원하는 수를 얻는 알고리즘을 의미한다. 원리는 이렇다. 큰 수를 작은 수로 나눈다 -> 나누는 수를 나머지로 계속 나눈다 -> 나머지가 0이 나올 때까지 반복한다. -> 나머지가 0이 나온다면, 그때 나누는 수가 최대공약수이다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/blmkjA/btrtqNdD3zE/HvhBsykWukrdkUY9OeHNAK/img.png)
[문제] [결과] [해설] 이 문제는 지난 게시글에 올렸던 2440번 문제와 유사한 문제이다. 다만 별들의 위치가 오른쪽으로 쏠린 것을 [결과]에서 확인할 수 있다. 별들이 오른쪽이 치우친 덕에 공백으로 만들어진 계단을 볼 수 있었다. 그래서 공백으로 별찍기를 한다고 생각하면 쉽게 풀 수 있다. [해설]의 'j < i' 와 'int k = num - i' 에서 i 와 num - i의 합인 num을 맞춰주어야 반듯한 직사각형에 별을 찍을 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjcNe4/btrtq820aZC/klkMjyITOKWRJPfHCjn5V0/img.png)
[문제] [결과] [해설] 출력 결과를 확인해보면, 첫 번째 줄에는 별이 n개가 출력되고 두 번째 줄에는 별이 n-1개, 세 번째 줄에는 별이 n-2개, 네 번째 줄에는 별이 n-3개, ... n 번째 줄에는 별이 1개가 출력되는 것을 확인할 수 있다. 따라서 i가 점점 커질 때마다 j도 같은 크기만큼 줄려주면 된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lox6X/btrtlmVZ4TG/Fv4ExeVReeZDnBSSU4aWYK/img.png)
[문제] [결과] [해설] stoi 함수: string to int 말 그대로 문자열을 정수형으로 바꾸는 함수 substr 함수: string substr(size_t index=0, size_t len=npos) const; string을 index에서부터 len만큼 잘라서 반환하는 함수 코드는 많이 길어보이지만, 직접 작성해보시면 쉬운 문제라는 것을 알 수 있습니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OO9tL/btrtk059Lf9/ENGZ1ZhTbAnG6xB1HtjgU0/img.png)
[문제] [결과] [해설] 이 문제는 지난 게시글(백준 2525번)에서 다룬 문제와 유사하다. 차이점이라면, 지난 게시글에서는 분을 기준으로 했다면 이번 게시글에 실린 문제에서는 초를 시작으로 문제를 해결해야한다. 원활한 문제풀이를 위해 새로운 변수들을 삽입했다. s1은 입력받은 초와 추가시간인 초를 합하여 나머지만 저장했고, 60초를 초과했을 경우 b1 변수에 그 값을 저장했다. b2에는 초과된 분인 b1과 원래 입력받은 B를 더한 값의 나머지를 저장해 최종적인 분을 저장했다. a1에는 b1과 B의 값을 더하여 초과된 값을 시간으로 간주해 저장했다. a2에는 최종적인 시간을 저장했다.