728x90
반응형

Kotlin 144

<백준> 팰린드롬(Gold 4)

[백준]https://www.acmicpc.net/problem/10830[깃허브] ForCodeKata/baekjoon 문제집/팰린드롬? at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com오늘 이 문제는 보자마자 DP구나... 라는 생각이 들었다.팰린드롬은 회문을 말한다. 앞으로 읽어도 뒤로 읽어도 같은 문장미리 DP 배열을 이용해 회문이지 체크를 하고 질문을 받아 해결해야지 시간 안에 통과할 수 있을 것이기 때문이다. 범위가 1일 때는 무조건 회문이라고 볼 수 있다.범위가 2일 때는 두 개의 숫자가 ..

<백준> 행렬 제곱(Gold 4)

[백준]https://www.acmicpc.net/problem/10830[깃허브] ForCodeKata/baekjoon 문제집/10830 행렬제곱 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com저번 주 금요일에 깔끔하게 풀지 못하고 오늘까지 이어진 문제였다.행렬이 고등학교 과정에서 빠지면서 배우지 못했던 게 참 아쉽다고 느껴졌다. 그러나 행렬의 곱셉을 하는 과정은 따로 공부하며 알고 있었기에 쉽게 풀 수 있지 않을까 생각했다.어림도 없지 제곱을 하는 횟수가 100,000,000,000까지였다.일반적..

<백준> 가운데를 말해요(Gold 2) - 재풀이

[백준]https://www.acmicpc.net/problem/1655[깃허브] ForCodeKata/baekjoon 문제집/가운데를 말해요 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com어제부터 다른 백준 문제집을 풀고 있는데 문제 난이도가 골드부터 시작해서 상당히 빡세다.이전에 풀었던 오늘 문제였지만 어떻게 풀었는지 생각이 안나서 한참 걸렸다. 그래서 처음에 시도했던 방식은 우선순위큐를 하나 두고 중간값을 구해야할 때마다 절반씩 꺼내서 저장해놓을 스택을 두는 것이었다.무조건 절반 빼고 거기서 조..

순열 & 조합

1. 순열순열이란 서로 다른 n개의 원소를 가지는 어떤 집합에서 중복 없이 "순서에 상관있게" r개의 원소를 선택하거나 혹은 나열하는 것이다.영어로 permutation이고 nPr로 표현한다.nPr = n! / (n - r)! 순열을 코드로 구현할 때는 DFS를 사용할 수 있다.방문여부를 체크하는 배열을 두고 뽑았는지 안 뽑았는지를 구별할 수 있고 파라미터로 r과 현재 뽑은 개수 c를 보내주면 된다.(전역변수로 집합이 있는 케이스가 아니라면 n도 같이 보내줘야한다.)그리고 순서에 상관있기 때문에 무조건 0번째 인덱스부터 반복하면 된다.방문여부 체크 배열의 값을 true로 했다가 false로 하는 이유는 해당 숫자가 다른 경우의 수에서 사용될 수 있기 때문이다.val list = intArrayOf(1, ..

Kotlin/Algorithms 2024.07.03

<백준> 1의 개수 세기(Gold 2)

[백준]https://www.acmicpc.net/problem/9527[깃허브] ForCodeKata/baekjoon 문제집/9527 1의 개수 세기 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com이 문제는 풀었다기보다는 그냥 다른 사람의 풀이를 보고 적었다...이해가 잘 되지 않더라딱 비트 수 당 1의 개수를 저장하는 누적합까지는 이해를 했는데 범위에 포함되는 1의 개수를 구하는 쪽의 알고리즘은 영 감을 못 잡았다. 뭔가 최대 비트 차례까지 내려가다가 최대 비트가 나오면 거기서 1의 개수를 구한다..

<백준> 동전 분배(Gold 2)

[백준]https://www.acmicpc.net/problem/1943[깃허브] ForCodeKata/baekjoon 문제집/1943 동전 분배 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com주말을 보내고 정신을 겨우 차린 다음에 푸는 월요일 알고리즘 문제...오늘은 무슨 문제를 풀 차례인가 보는데 숫자가 또 바꼈다.골드 2문제가 시작되더라 그래도 침착함을 유지하며 문제를 읽어가는데 보자마자 DP 문제인 것과 무게에 대한 DP 배열을 만들어 가능한지 가능하지 않은지 체크를 해야겠다는 생각이 들었다...

<백준> 가희와 탑(Gold 3)

[백준]https://www.acmicpc.net/problem/24337[깃허브] ForCodeKata/baekjoon 문제집/24337 가희와 탑 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com처음에는 문제를 보고 이전에 풀었던 탑 문제들이랑 비슷하겠구나 하고 더 내려가는데 갑자기 이걸 어떻게 풀어야하지? 라는 문제로 바꼈다.그냥 보이는 건물을 찾는 게 아니라 보이는 건물 개수에 맞춰 그 건물들의 높이 정보를 출력해야했기 때문이다.완전 반대 문제인 것이다. 그래서 스택문제일까 했지만 뭐 넣을 수 ..

<백준> 탑 보기(Gold 3)

[백준]https://www.acmicpc.net/problem/22866[깃허브] ForCodeKata/baekjoon 문제집/22866 탑 보기 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com뭔가 이전에 풀었던 문제와 비슷한 거 같은데 전에 풀었던 방법이 정확히 기억나지 않고 어떤 걸 사용했었는지만 생각나던 문제였다.이런 탑 문제를 보면 이제는 가장 먼저 그냥 완전탐색을 써서 돌리는 건 안 되는 문제겠구나라는 생각을 많이 하게 된다.숫자 제한이 보통 시간 제한을 넘어가기 때문이다.그래서 사용하는 ..

<백준> 하늘에서 별똥별이 빗발친다(Gold 3)

[백준]https://www.acmicpc.net/problem/14658[깃허브] ForCodeKata/baekjoon 문제집/14658 하늘에서 별똥별이 빗발친다 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com어느새 푸는 문제집의 골드 3까지 왔다.플래티넘 문제를 제외하면 8문제 남았다...!!다 풀고는 다시 복습하면서 알고리즘 정리하고 자바로도 풀어봐야겠다 오늘 문제는 그냥 지문이 재미있다는게 첫 감상이었다별똥별을 트램펄린으로 튕겨낸다니 색다른 발상이다 문제 자체는 보면서 들었던 생각은 트램펄린..

<백준> 비슷한 단어(Gold 4)

[백준]https://www.acmicpc.net/problem/2179[깃허브] ForCodeKata/baekjoon 문제집/2179 비슷한 단어 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com문제는 아주 간단했다.그냥 앞에서부터 체크하면서 가장 길게 알파벳이 동일한 두 단어를 고르면 되는 거였다.그래서 처음에는 완전탐색을 했다.물론 그냥 하면 안 될 거 같아서 입력 받을 때 중복을 추가하지 않는 것을 했는데 시간제한을 거의 딱 맞춰서 통과했다.이 방법은 아닌 것 같아서 다른 사람들의 풀이를 보며 ..

반응형