TIL/알고리즘 공부
백준 2438, 2439번 Swift 알고리즘 연습
여의도사노비
2022. 3. 25. 17:18
728x90
금요일이라 놀고 싶지만 알고리즘은 풀고 놀아야겠다 싶어서 for문을 마져푸는데 생각 이상으로 헷갈린다...
고민하다가 모르겠어서 찾아보면 아 맞네 이걸 왜 몰랐지? 싶은 이 기분.. 앞으로 현타에 더 익숙해져야겠다.
* 2438번
1)
let a = Int(readLine()!)!
for i in 1...a {
for _ in 1...i {
print("*", terminator: "")
}
print("")
}
- 어떻게 해야 프린트를 여러번 찍어내고 출력 단락을 바꿀 수 있을까 고민을 했다. 결국 for 문을 두 번 겹쳐서 사용하자는 결론이 나긴 했지만 뭔가 바로 생각난 것도 아니고 이것저것 고민을 좀 오래해서 그런지 결론도 찝찝했다.
- 근데 여기서 for가 한 번더 겹쳐져서 3중 for문이 나온다 생각하면 엄청 머리 아플거 같다.
* 2439번
1)
let a = Int(readLine()!)!
for i in 1...a {
for _ in 0..<(a-i) {
print(" ", terminator: "")
}
for _ in 0..<i {
print("*", terminator: "")
}
print()
}
- 이 문제는 계속 풀리지를 않았다 처음엔... 결국 for문 안에 2개의 for문을 작성하는 것까지 걸린 시간도 상당히 오래걸렸고.. 이 마저도 처음엔 맘처럼 값이 나오지 않아 시행착오를 여러번 거쳤다.
- 그런데 그렇게 시행착오를 걸쳐서 나온 결과 치고는 마음에 들지 않는다..
- 그래서 이것저것 찾아보니 strider라던지 이 외의 다른 방식으로 푼 코드들도 있더라.
- 이전에 for문 풀며 배운 terminator나 strider등의 용어들은 추후 deep dive에 정리할 예정이다.
정리(Today I Learned)
- for문 안에 for문이 들어갈 수 있다. 그것도 2개나 들어갈 수 있다.
- strider, terminator 등의 용어 정리