728x90
그간 여러가지 프로젝트를 진행하느라 알고리즘 공부를 소홀히 했다.. (돌아보면 뭐했는지 모르겠지만... ㅠ)
문제가 어렵지는 않았기도 했지만 앱 개발을 하며 스위프트 논리를 어느 정도 적용하다보니,
알고리즘을 해결하는 것도 점점 익숙해지는 부분이 있는 것 같다.
이 문제를 풀면서 생각한 논리적 흐름은
1. '셀프넘버'를 논리적으로 구해내는 것이 더 어려울 것 같다는 생각
2. 눈에 보이는 논리(M = N + N의 1의 자릿수 + N의 10의 자릿수 + ... )를 먼저 이용해보자는 것
3. 그래서 '셀프넘버'가 아닌 수들을 전부 배열에 넣어버리고(중복 값이 있을까봐 set 사용)
4. 마지막으로 이를 1 ... 10000 까지의 set 배열과의 차집합을 통해 값을 구해내보자
위와 같이 진행하였다.
사실 풀고도 훨씬 더 간단한 방법이 있을 것이라고 보여진다. 하지만 항상 그렇듯이 더 간결하고 나은 답을 찾기가 왜 이리 귀찮은걸까..ㅠㅠ
* 4673번
정리(Today I Learned)
- append와 insert는 항상 헷갈린다. Array에서는 append 가능... set에서는 불가능... 대신 insert 사용!
- subtract와 subtracting은 차이가 있다! subtracting은 원값이 변하지 않은 상태에서 적용되고, subtract는 원값을 변경시킨다!
'TIL > 알고리즘 공부' 카테고리의 다른 글
백준 11654번 Swift 알고리즘 연습 (0) | 2022.08.09 |
---|---|
백준 1065번 Swift 알고리즘 연습 (0) | 2022.08.04 |
백준 4344번 Swift 알고리즘 연습 (0) | 2022.06.03 |
백준 8958번 Swift 알고리즘 연습 (0) | 2022.05.26 |
백준 1546번 Swift 알고리즘 연습 (0) | 2022.04.18 |