나의 기록, 현진록

[Swift] 백준 저울 2437 본문

Programming/Algorithm & Data Structure

[Swift] 백준 저울 2437

guswlsdk 2025. 4. 1. 19:36
반응형

https://www.acmicpc.net/problem/2437

 

1. 문제이해

  • N 개의 저울추가 주어질 때, 측정할 수 없는 무게 중 최솟값 구하기

2. 접근방법

  • 1, 1, 2로 측정할 수 있는 무게
    • 1 (1)
    • 2 (1+1, 2)
    • 3 (1+2)
    • 4 (1+1+2)
    • 1,2,3,4
  • 1, 1, 2에서 3이 추가될 경우
    • 1 + 3 = 4
    • 2 + 3 = 5
    • 3 + 3 = 6
    • 4 + 3 = 7
    • 1,2,3,4,5,6,7
  • 1, 1, 2에서 5가 추가될 경우
    • 1 + 5 = 6
    • 2 + 5 = 7
    • 3 + 5 = 8
    • 4 + 9 = 9
    • 1,2,3,4,6,7,8,9 5는 무게를 측정할 수 없음
  • 1 ~ K까지 무게를 측정할 수 있을 때
  • 새로운 저울추가 K 무게보다 작거나 같으면 1부터 새로운 저울추까지 무게를 측정할 수 있다.
  • 새로운 저울추가 K 보다 크면 K+1은 측정할 수 없는 수가 된다.

3. 코드

func solution(){
    let _ = Int(readLine()!)!
    let weights = readLine()!.split(separator: " ").map{Int(String($0))!}.sorted()
    var sum = 1
    for weight in weights{
        if sum < weight{
            break
        }
        sum += weight
    }
    print(sum)
    
}
solution()
반응형