๋ชฉ๋ก์ ์ฒด ๊ธ (454)
Bibi's DevLog ๐ค๐
๊ด๋ จ ์ ์ฅ์ Environment๋? ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋, ๊ทธ ๊ฐ์ฒด๊ฐ ํ์๋ก ํ๋ ์์กด์ฑ์ ์ฃผ์ ํด ์ค๋ค. ์ด ๋ ํ์ํ ์์กด์ฑ์ด ๊ฐ์ฒด ์ ์ฒด๊ฐ ์๋๋ผ ๊ทธ ๊ฐ์ฒด์ ๋ฉ์๋ ์ผ๋ถ๋ผ๋ฉด, ๊ฐ์ฒด ์ ์ฒด๊ฐ ์๋๋ผ ๋ฉ์๋ ์ผ๋ถ๋ง์ ์ฃผ์ ํด ์ฃผ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ค. ๊ทธ๋์ 'ํน์ ๊ฐ์ฒด๊ฐ ํ์๋ก ํ๋ ํ๊ฒฝ' ์๋ฏธ๋ก ํด์ํ์ฌ Environment๋ผ๋ ์ด๋ฆ์ ์ดํดํด ๋ณด์๋ค. ์ฌ์ฉ ๋ฐฐ๊ฒฝ ๊ด๋ จ PR Environment ์ฌ์ฉ ์ ์๋ ์์กด์ฑ ์ฃผ์ ์ ํ์ํ ์์๋ค์ด ๋ชจ๋ ๋ถ๋ฆฌ๋์ด ์๊ฑฐ๋, ๋ค๋ฅธ ๊ฐ์ฒด ๋ด์ ์์๋ก ์กด์ฌํด ๊ฐ์ฒด ์์ฑ ๊ณผ์ ์ด ๋งค์ฐ ๋ณต์กํ๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ๋ชฉ๋ก๋ค์ ๋ณด์ฌ์ฃผ๋ IssueViewController์์ ํ์ํ ๋ฉ์๋๊ฐ IssueService์ ๋ฉ์๋ ์ค 1๊ฐ๋ฟ์ธ๋ฐ, ๊ทธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด IssueModel์๊ฒ ..
4504 ๋ฐฐ์ ์ฐพ๊ธฐ 4504๋ฒ: ๋ฐฐ์ ์ฐพ๊ธฐ ์ด๋ค ์ซ์๊ฐ ์ฃผ์ด์ง ์ ์์ ๋ฐฐ์์ธ์ง ์๋์ง ํ๋จํด ์ถ๋ ฅํ๋ ๋ฌธ์ . ํ ์คํธ ์ผ์ด์ค ์๊ฐ ์ฃผ์ด์ง์ง ์๋ ๋์ , ์ ๋ ฅ์ ๋์ 0์ด ์ฃผ์ด์ง๋ค. ํ์ด1 let multiple = Int(readLine()!)! while true { let input = Int(readLine()!)! if input == 0 { break } if input % multiple == 0 { print("\(input) is a multiple of \(multiple).") } else { print("\(input) is NOT a multiple of \(multiple).") } } ๋๋จธ์ง ์ฐ์ฐ์์ ๊ฒฐ๊ณผ๊ฐ 0์ด๋ฉด ๋ฐฐ์๊ฐ ๋๋ค. ํ์ด2 let multiple = Int(readLi..
4493๋ฒ: ๊ฐ์ ๋ฐ์ ๋ณด? ๋งจ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐฏ์๊ฐ ์ฃผ์ด์ง๋ค ๊ทธ ์๋๋ถํฐ๋ ํ ์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค ํ ์คํธ ์ผ์ด์ค์ ์ฒซ ์ค์ ๊ฐ์๋ฐ์๋ณด ๊ฒ์ ํ์๊ฐ ์ฃผ์ด์ง๋ค ๊ทธ ์๋๋ถํฐ๋ ๊ฐ์๋ฐ์๋ณด ๊ฒ์ ํ์๋งํผ ๋ฌด์์ ๋๋์ง ์ฃผ์ด์ง๋ค ์ผ์ชฝ์ Player1, ์ค๋ฅธ์ชฝ์ Player2 R = Rock = ๋ฐ์, S = Scissor = ๊ฐ์, P = Paper = ๋ณด ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋๊ฐ ์ด๊ฒผ๋์ง(๋๋ ๋น๊ฒผ๋์ง) ์ถ๋ ฅํ๋ค ํ์ด let count = Int(readLine()!)! (1...count).forEach { num in let game = Int(readLine()!)! var score1 = 0 var score2 = 0 (1...game).forEach { _ in let inputArr = ..
4458 ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก 4458๋ฒ: ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณํํ๋ ๋ฌธ์ . ์์ฒญ ์ฌ์ด ๋ฌธ์ ์ธ๋ฐ 1์๊ฐ ์ ๋ ์ ์๋์ง?๋ฅผ ๋ฐ๋ณตํ๋ค๊ฐ ๊ตฌ๊ธ๋ง์ ํตํด ์ ๋ต ์ฝ๋๋ฅผ ๋ดค๋ค.ใ ํ์ด 1 (๋ฐํ์ ์๋ฌ) let count = Int(readLine()!)! var answer: [String] = [] if count
Apple Developer Documentation ===(::) ๋ ์ฐธ์กฐ๊ฐ ๋์ผํ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋์ง๋ฅผ ๋ํ๋ด๋ Boolean๊ฐ์ ๋ฐํํฉ๋๋ค. func === (lhs: AnyObject?, rhs: AnyObject?) -> Bool lhs , rhs : ๋น๊ตํ ์ฐธ์กฐ ์ค๋ช ์ด ์ฐ์ฐ์๋ ๋ ์ธ์คํด์ค๊ฐ ๊ฐ์ ๊ฐ์ด ์๋๋ผ, ๊ฐ์ ๊ณ ์ ์ฑ(identity)์ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ํ์ธํฉ๋๋ค. ๊ฐ์ ๋์ผ์ฑ์ ์ํด์๋, == ์ฐ์ฐ์์ Equatable ํ๋กํ ์ฝ์ ํ์ธํ์ญ์์ค. ์๋ ์์๋ ์ ์ํ ํ์ ์ ์ฐธ์กฐ ์๋ฏธ๊ฐ ์๋ IntegerRef ๋ผ๋ ํ์ ์ ์ ์ํฉ๋๋ค. class IntegerRef: Equatable { let value: Int init(_ value: Int) { self.value = val..
Identity ๋์ผ์ฑ ๋ง ๊ทธ๋๋ก ๋์ผํจ์ ์๋ฏธ. ๋ ๊ฐ์ฒด๊ฐ ์์ ํ ๊ฐ๋ค. “๋์ผํ๋ค” = ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค. ์ฆ ์ฃผ์๊ฐ์ด ๊ฐ๋ค. ๊ฐ์ด ๊ฐ๋๋ผ๋, ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ๋์๋ค๋ฉด ๋์ผํ๋ค๊ณ ๋ณผ ์ ์๋ค. Swift์์… === , !==์ฐ์ฐ์๋ฅผ ํ์ฉํด ์ฐธ์กฐ๊ฐ ๋์ผํ์ง ํ์ธํ ์ ์๋ค. === ๋ ํด๋์ค์ ๋ํด์๋ง ์ฌ์ฉํ ์ ์๋ค - ๊ตฌ์กฐ์ฒด๋ ํญ์ ๊ณ ์ ํ๊ฒ ์ฐธ์กฐ๋๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ. ์ฐธ๊ณ : ===, !== ์ฐ์ฐ์ Equality ๋๋ฑ์ฑ ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฐธ์กฐ (๊ฐ์ฒด์ ์ฃผ์) ๊ฐ ๋ค๋ฅด๋๋ผ๋, ๊ทธ ๋ด์ฉ(๊ฐ)์ด ๊ฐ์ผ๋ฉด ๋๋ฑํ๋ค๊ณ ํํํ๋ค. ๋์ผํ๋ฉด ๋๋ฑํ์ง๋ง, ๋๋ฑํ๋ค๊ณ ๋์ผํ ๊ฒ์ ์๋๋ค. Swift์์… ==, != ์ฐ์ฐ์๋ฅผ ํ์ฉํด ๊ฐ์ด ๋๋ฑ..
3047๋ฒ: ABC ์ฒซ ์ค ์ ๋ ฅ์์ A < B < C ์ธ ์ A, B, C๋ฅผ ์ฐพ๊ณ ๋๋ฒ์งธ ์ค ์ ๋ ฅ์์ ์ฃผ์ด์ง๋ ์์๋๋ก A, B, C๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ฒซ ์ ๋ ฅ ๋ฐ์ ๋ Int๋ก ์บ์คํ ์ํด๋ ๋๋? ํด์ ์ํ๋๋ฐ, ๊ทธ๊ฑด ํ ์๋ฆฌ ์ ๊ธฐ์ค์์๋ง ์ฑ๋ฆฝํ๊ณ , ์ฌ๋ฌ ์๋ฆฌ ์ ์ ๋ ฌํ ๋๋ ๋ฐ๋์ Int๋ก ๋ณํํด์ค์ผ ํ๋ค. String ์ ๋ ฌ : 1, 4, 3 → 1, 3, 4 (O) / 1, 9, 11 → 1, 11, 9 (X) Int ์ ๋ ฌ : 1, 4, 3 → 1, 3, 4 (O) / 1, 9, 11 → 1, 9, 11 (O) ํ์ด var input = readLine()!.split(separator: " ").map { Int($0)! } input = input.sorted() let order = read..
์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๊ฐ ์์๊ฐ ๋ ธ๋๋ก ๋์ด ์๋ ์ฐ์๋ ๋ฐ์ดํฐ๋ค์ด๋ค. node ๋ ธ๋ : ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ํ๋์ ์์๋ฅผ ๋งํจ head : ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์์ ๋ ธ๋๋ฅผ ์ฐธ์กฐํ๋ ํฌ์ธํฐ tail : ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ ๋ ธ๋๋ฅผ ์ฐธ์กฐํ๋ ํฌ์ธํฐ ์ ํ ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ singly linked list : ๊ฐ ํญ๋ชฉ์ด ๋ค์ ๋ ธ๋์ ๋ํ ์ฐธ์กฐ๋ง ๊ฐ์ง ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ doubly linked list : ๊ฐ ํญ๋ชฉ์ด ์, ๋ค ๋ ธ๋์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ชจ๋ ๊ฐ์ง ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํํ๊ธฐ (Swift) https://www.raywenderlich.com/books/data-structures-algorithms-in-swift/v3.0/chapters/6-linked-list ํ๋กํ ์ฝ ์ฑํํ๋ ๋ถ๋ถ ์ด์ ๊น์ง ์ ๋ฆฌํ์ต..