2/6 ~ 2/12
Closed this issue · 5 comments
Taehyeon-Kim commented
level 1
level 2
level 3
Taehyeon-Kim commented
이상한 문자 만들기
import Foundation
func solution(_ s:String) -> String {
return s.components(separatedBy: " ").map {
$0.enumerated().map { (idx, value) in
return idx % 2 == 0 ? value.uppercased() : value.lowercased()
}.joined()
}.joined(separator: " ")
}
- 같은 코드인데 components를 split으로 바꾸면 tc를 통과하지 못한다. SubString 타입때문인지 의심이 가긴 하는데,,,
func solution(_ s:String) -> String {
return s.split(separator: " ", omittingEmptySubsequences: false).map {
$0.enumerated().map { (idx, value) in
return idx % 2 == 0 ? value.uppercased() : value.lowercased()
}.joined()
}.joined(separator: " ")
}
- 기본적으로 split 메서드는 empty sequences를 생략하고 SubString을 만들어내는데, 이 때문에 틀리는 문제였다. 단어 자체에 공백이 포함되어 있는 경우 답이 올바르지 않았어서 이를 방지하기 위해서 omittingEmptySubsequences 옵션을 false로 설정해주었다. components와 split의 차이를 정확하게 알고 있지 못해서 어려움을 겪었다.
Taehyeon-Kim commented
프렌즈4블록
-
전형적인 시뮬레이션 문제
-
집념으로 해결했다.
-
이건 과연 문제를 푼걸까.. 어떻게 하면 구현을 더 깔끔하게 실수없이 할 수 있을지 고민해봐야겠다.
-
디버깅, 좌표 이동 등 자주 쓰이는 건 메서드 미리 구현해놓고 외워도 될 것 같다.
-
그리고 세로 묶음으로(스택단위로) 바라보는 경우가 생각보다 많은 것 같은데 2차원 배열을 Column 단위로 보는 방법을 미리 살펴보면 나중에 문제 다룰때 편할 것 같다.
Taehyeon-Kim commented
진수 변환
- 구현, 문자열 문제, 난이도 1 같음
- string radix 활용한 진법 변환만 신경쓰면 되었음
Taehyeon-Kim commented
불량 사용자
- 순열이 아이템으로 쓰인 문제
- 문자열 비교할 때 zip을 사용하면 괜찮은 로직을 구현할 수 있다.
- 놓고 보면 구현 문제 그 자체인데, 문자열 처리(zip) / 경우의 수 - 순열 / Set - 중복 제거로 풀리는 문제다.
Taehyeon-Kim commented
다단계 칫솔 판매
- 트리 구조이기도 했고, 재귀적으로 연산이 일어나는 것 같아 dfs 또는 재귀로 풀 수 있었다. (dfs도 내부적으로 재귀로 구현하면 되니까 결국 재귀)
- 재귀라고 하면 귀납적 논리를 이용해 이전항과 현재항의 관계만 잘 나타내면 된다.
- 추천인이 없는 경우는 근데 그냥 10% 이익이 뜯기는 것인지 아직 이해를 잘 못했다.
- dfs에 익숙해질필요가 있어보인다.