728x90
알고리즘 공부를 시작할 때 주말 말고 평일에만 공부하겠다 다짐했건만,
저번주 이번주 너무 공부를 못해서 그냥 하나 풀어봄 ^^;
* 3052번
1)
var insert1 = Int(readLine()!)!
var insert2 = Int(readLine()!)!
var insert3 = Int(readLine()!)!
var insert4 = Int(readLine()!)!
var insert5 = Int(readLine()!)!
var insert6 = Int(readLine()!)!
var insert7 = Int(readLine()!)!
var insert8 = Int(readLine()!)!
var insert9 = Int(readLine()!)!
var insert10 = Int(readLine()!)!
var value = Set<Int>()
var array = [insert1,insert2,insert3,insert4,insert5,insert6,insert7,insert8,insert9,insert10]
for i in 0...9 {
value.insert(array[Int(String(i))!] % 42)
}
print(value.count)
이번 문제는 금방 풀긴했다. 그런데.
- 처음에는 인서트 값을 배열에 전부 받아놓고
- 배열 원소끼리 하나하나 비교를 통해 중복된 값은 제외하고 카운트를 해보려고 했다.
- 하지만 생각보다 중복되는 케이스가 많이 생기고, 중복 케이스를 전부 제외해줄 알고리즘 흐름을 찾지 못했다.
- 그래서 생각을 바꾸고 그냥 '중복되지 않고 남아있는 숫자'의 개수에만 집중하였다.
- 그렇게 생각난 것이 Set.
- Set은 아무리 많은 값을 넣어줘도 같은 형태의 같은 값이라면 중복으로 처리되기에
- Set을 사용하여 값을 전부 저장하고 카운트 개수를 세었다.
- 근데 이번 문제를 풀면서 가장 마음에 안드는 점은 readLine()을 for문으로 10번 실행하는 것에 실패했다는 것이다.
- 단순 10번 실행은 가능하나 insert1..10처럼 매번 특정 변수 지정하여 실행하는 것은 어떻게 하는지 도저히 모르겠다 ㅠㅠ
- 그래서 추후 iOS 고수분들에게 물어볼 예정...
정리(Today I Learned)
- Array와 Set의 가장 큰 차이는 중복값이 저장 되는지 안되는지의 차이!
- readLine()를 실행할때마다 새로운 변수에 값을 저장시킬 수 있는 방법이 무엇일까를 아직 잘 모르겠다. (물어볼 예정)
'TIL > 알고리즘 공부' 카테고리의 다른 글
백준 8958번 Swift 알고리즘 연습 (0) | 2022.05.26 |
---|---|
백준 1546번 Swift 알고리즘 연습 (0) | 2022.04.18 |
백준 2577번 Swift 알고리즘 연습 (0) | 2022.04.15 |
백준 10818, 2562번 Swift 알고리즘 연습 (2) | 2022.03.31 |
백준 1110번 Swift 알고리즘 연습 (2) | 2022.03.30 |