일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ftz
- 정렬 알고리즘
- 파이썬
- 두근두근 자료구조
- ftz level13
- 스택
- c언어
- SWiFT
- windosw 문자열
- 파일 시스템
- Java
- 시간복잡도
- 재귀
- Stack
- web
- pwnable.kr
- 큐
- windosws wbcs
- 암호수학
- 백준
- System
- 자료구조
- War Game
- LoB
- 미로 탐색 알고리즘
- OSI
- level13
- C
- HTML
- PHP
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 백준 저울 2437 본문
반응형
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()
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 가장 먼 노드 (0) | 2025.03.26 |
---|---|
[Swift] 백준 치킨 배달 15686 (0) | 2025.03.25 |
[Swift] 프로그래머스 이중우선순위큐 (0) | 2025.03.24 |
[Swift] 프로그래머스 타겟넘버 (0) | 2025.03.18 |
[Swift] 프로그래머스 여행경로 (0) | 2025.03.12 |