본문 바로가기

Computer Science/Algorithm13

[Algorithm/Kotlin] 백준 2164번 카드2: Queue를 활용한 풀이법 문제 설명 N장의 카드가 있습니다. 카드는 1부터 N까지 번호가 붙어 있고, 1번 카드가 제일 위, N번 카드가 제일 아래에 놓여 있습니다. 이 상태에서 다음 동작을 반복하여 카드가 한 장만 남을 때까지 진행합니다:제일 위에 있는 카드를 버린다.그 다음, 제일 위에 있는 카드를 제일 아래로 옮긴다.마지막에 남는 카드를 구하는 프로그램을 작성합니다.문제 해결 아이디어이 문제는 큐(Queue) 자료구조를 사용하면 직관적으로 해결할 수 있습니다. 문제에서 요구하는 동작이 큐의 FIFO(First In First Out) 구조와 일치하기 때문입니다.큐 초기화:   1부터 N까지의 숫자를 큐에 삽입합니다.   예: N=6이면 [1,2,3,4,5,6].홀수와 짝수 턴 처리:   홀수번째 턴:   poll() 메서드.. 2025. 1. 6.
[Algorithm/Kotlin] 백준 2839번 설탕 배달 문제 설명설탕 배달 문제는 다음과 같습니다.상근이는 설탕 공장에서 3kg 봉지와 5kg 봉지를 사용해 정확히 Nkg의 설탕을 배달하려고 합니다. 이때 봉지의 개수가 최소가 되도록 설탕을 나눌 방법을 찾는 문제입니다.만약 정확히 나눌 수 없다면 -1을 반환해야 합니다.문제 해결 아이디어이 문제의 핵심은 5kg 봉지를 최대한 먼저 사용하고, 나머지를 3kg 봉지로 채우는 방법입니다. 이유는 5kg 봉지를 최대한 사용했을 때 봉지 개수가 더 줄어들 가능성이 높기 때문입니다.로직 설계기저 조건:   N인 경우 설탕을 정확히 나눌 수 없으므로 -1을 반환합니다.5kg 봉지를 최대한 사용:   N을 5로 나눈 몫만큼 5kg 봉지를 사용합니다.   남은 설탕 무게를 계산합니다.남은 설탕 처리:   남은 설탕이 3으로.. 2025. 1. 6.
[Algorithm/Kotlin] 백준 7568번 덩치: StringBuilder를 활용한 풀이법 덩치 등수 매기기 문제는 주어진 사람들의 키와 몸무게를 비교하여 각자의 상대적인 순위를 구하는 알고리즘 문제입니다. 이번 글에서는 문제를 두 가지 방식으로 해결하며, 효율성을 개선하기 위해 StringBuilder를 활용한 방식을 소개합니다. 문제 설명덩치 비교 기준사람의 덩치는 키와 몸무게 두 가지 값으로 표현됩니다. 예를 들어 (x, y)는 한 사람의 몸무게 x와 키 y를 나타냅니다. 두 사람 A와 B의 덩치 (x, y)와 (p, q)를 비교할 때:A의 덩치가 더 크다면: x > p 그리고 y > q를 만족해야 합니다.두 값 중 하나라도 크거나 같지 않으면 A와 B의 덩치는 비교할 수 없습니다.등수 계산주어진 N명의 사람들에 대해:자신보다 덩치가 더 큰 사람의 수를 구합니다.등수는 이 수에 1을 더한.. 2025. 1. 2.
[Algorithm/Kotlin] 백준 2562번 최댓값: withIndex 문법을 활용한 풀이법 이번 글에서는, 리스트의 최댓값을 구하고, 그 최댓값이 위치한 인덱스를 함께 찾는 두 가지 방식에 대해 정리 해 보겠습니다.특히, 최댓값 문제를 풀면서 알게되어 두 번째 방식에서 사용한 withIndex 문법에 대해 중점적으로 살펴보겠습니다.문제 정의9개의 정수를 입력받아 리스트에 저장한 뒤, 다음 두 가지를 출력하는 프로그램을 작성합니다:리스트의 최댓값최댓값이 위치한 인덱스(1부터 시작)풀이 방법 1: 간단한 라이브러리 함수 활용먼저, 코틀린의 내장 함수를 활용한 간단한 풀이 방법입니다.fun main(args: Array) { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStream.. 2024. 12. 10.
반응형