๐ฉ๏ธ ๋จน๊ตฌ๋ฆ
BOJ: #6603 - ๋ก๋
BOJ: #6603 - ๋ก๋
2021.05.06์ค๋ณต์ ์ฒ๋ฆฌํด์ฃผ๊ธฐ ์ํด์ visited ๋ณ์๋ฅผ ์ด์ฉํด ์ฒดํฌํ๊ณ , ์ฌ์ ์์ผ๋ก ํ์ํ๊ธฐ ์ํด ์ด์ ์ ๊ณ ๋ฅธ ์๊ฐ ํ์ฌ ๊ณ ๋ฅธ ์๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ ๊ฑด๋๋ฐ๊ฒ ํ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/6603 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift while let input = readLine() { if input == "0" { break } let nums = Array(input.split(separator: " ").map { Int(String($0))! }) let n = nums.count var picked = [String]() var visited = Array(repeating: false, count: n) func pick(toPick: Int) { if toPick ==..
BOJ: #10974 - ๋ชจ๋ ์์ด
BOJ: #10974 - ๋ชจ๋ ์์ด
2021.05.0404:21 N๊ณผ M ์๋ฆฌ์ฆ ์ค์.. ์ด๋ค ๋ฌธ์ ๋ ๋๊ฐ์ ๋ฌธ์ https://www.acmicpc.net/problem/10974 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = Int(readLine()!)! var picked = [Int]() var visited = Array(repeating: false, count: n) func pick(toPick: Int) { if toPick == 0 { print(picked.map { String($0) }.joined(separator: " ")) return } for i in 0..
BOJ: #10819 - ์ฐจ์ด๋ฅผ ์ต๋๋ก
BOJ: #10819 - ์ฐจ์ด๋ฅผ ์ต๋๋ก
2021.05.0405:33 ๋ชจ๋ ์กฐํฉ์ ๋ง๋ค์ด์ ์ต๋๊ฐ ์ฐพ๊ธฐ ๋ฌธ์ https://www.acmicpc.net/problem/10819 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = Int(readLine()!)! let nums = readLine()!.split(separator: " ").map { Int(String($0))! } var results = [[Int]]() var picked = [Int]() var visited = Array(repeating: false, count: n) func pick() { if picked.count == n { results.append(picked) return } for i in 0..
BOJ: #1759 - ์ํธ ๋ง๋ค๊ธฐ
BOJ: #1759 - ์ํธ ๋ง๋ค๊ธฐ
2021.05.0423:52 ์ฒ์์๋ ๋ชจ์์ ๊ฐ์๋ง ์ฒดํฌํ๋๋ฐ, ์์์ ๊ฐ์๋ ์ฒดํฌํด์ผ ํ๋ค๋ ๊ฑธ ๋ณด๊ณ .. ์์ ํ๋๋ ํต๊ณผ. ์ค๋ณต์ด ์์ด์ผ ํ๋๊น visited ๋ณ์๋ก ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ธ ์ํธ์์ ์ฆ๊ฐํ๋ ์์๋๋ก๋ง ๋์ฌ ์ ์๋ค๊ณ ํด์ ascii ๊ฐ์ผ๋ก ํ์ธ ๋ฌธ์ https://www.acmicpc.net/problem/1759 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let x = readLine()!.split(separator: " ").map { Int(String($0))! } let l = x[0] let c = x[1] let alpha = readLine()!.split(separator: " ").map { String($0) } var picked = [String]() var results = [String]() ..
BOJ: #1182 - ๋ถ๋ถ์์ด์ ํฉ
BOJ: #1182 - ๋ถ๋ถ์์ด์ ํฉ
2021.05.01๋๋ ์ด๋ค ์ ํ์ ์ ํํ๋ ์ฝ๋๋ฅผ ์ธ์ฐ๋ฉด, ๋๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ๊ทธ ๋ฐฉ์์ ์์ฉํด์ ํผ๋ค. ๊ทธ๋์ ์ด ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ ๋นํจ์จ์ ์ธ ์ฝ๋๊ฐ ๋์๋ค. ์๊ฐ์ ๋ณด๋ ๋ค๋ฅธ ๋ถ์ ๋นํด ์ฝ 50๋ฐฐ๊ฐ ๋๋ ธ๋ค(โฆ). ๊ทธ๋์ ๋ ๊ฐ๊ฒฐํ ์ฝ๋๊ฐ ๊ถ๊ธํด์ ์ดํด๋ณด์๋๋ฐ, ๊ตณ์ด ๋ฐฐ์ด์ ์ฐ์ง ์๊ณ , ๋ณ์์ ์ ์ฅํด์ ์ฌ๊ท๋ฅผ ๋๊ธฐ๊ณ (?), ํ๋ ๋ฐฉ์์ผ๋ก ํ๋๋ผ. ์๋ฌดํผ ์ด๊ฑด ๋์ค์ ๋ค์ ํ์ด๋ด์ผ๊ฒ ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/1182 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let target = input[1] let nums = readLine()!.s..
BOJ: #2573 - ๋น์ฐ
BOJ: #2573 - ๋น์ฐ
2021.04.3027:09 ๋ ๋ฌ ์ ์ ์๋ํ์ ๋๋ ๋ชป ํ์๋๋ฐ, ์ค๋ ๋ค์ ํ์๋๋ฐ ํต๊ณผํ๋ค. ๊ฐ๋์ ๋๋ฌผโฆ. ๋ฐํํ. ๋
น์ด๊ณ , ๋ฉ์ด๋ฆฌ ๊ฐ์๋ฅผ ์ธ์ ํ์ธํ๋ฉด ๋๋ค. ์ด์ ๋ณด๋, ์์ ์ ์ฝ๋ ๋๋น 2๋ฐฐ ์ ๋ ์ค์ด๋ค์๋ค. ใ
0ใ
๋ฌธ์ https://www.acmicpc.net/problem/2573 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let size = readLine()!.split(separator: " ").map { Int(String($0))! } let col = size[0] let row = size[1] let direction = [(1, 0), (0, 1), (-1, 0), (0, -1)] var board = [[Int]]() for _ in 0..
BOJ: #15686 - ์นํจ ๋ฐฐ๋ฌ
BOJ: #15686 - ์นํจ ๋ฐฐ๋ฌ
2021.04.29ใ
..ใ
ใ
ใ
โฆ ์ ๋ฐ!!!!!!!! ์ง๋ฌธ ์ข ์ ์ฝ์!!!!!!!!!!!!!! ์์์ ๋ ์นธ (r1, c1)๊ณผ (r2, c2) ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ |r1-r2| + |c1-c2|๋ก ๊ตฌํ๋ค. (r1, c1), (r2, c2)๋ฅผ (r1, r2), (c1, c2)๋ก ์ฝ์ด์ ์ฝ์ง ์ค์ง๊ฒ ํ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/15686 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] var board = [[Int]]() var chicken = [(Int, Int)]() var house = [(Int, Int)]() f..
BOJ: #14502 - ์ฐ๊ตฌ์
BOJ: #14502 - ์ฐ๊ตฌ์
2021.04.29์ค๊ฐ๋ถํฐ ์๊ฐ ์ฌ๋ค๊ฐ ๋ง์์ง๋ง, ๊ฑฐ์ ๋ค์ฏ์๊ฐ ๊ฐ๊น์ด ๋ถ์ก์๋ค. ใ
ใ
ํ๊ธฐ ์์ํ ์ง ๋ ์๊ฐ์ด ์ง๋ฌ์ ๋ ์ฏ์์ ์ฌ๋์ ๋ฌผ์ด๋ดค๊ณ ๋ ๊ฐ์ง ์กฐ์ธ์ ๋ค์๋ค. board ์ ์ฒด๋ฅผ ๋๋ฉด์ 2๊ฐ ๋์ฌ ๋๋ง๋ค BFS๋ฅผ ๋๋ฆฌ๋ ๊ฒ ๋ณด๋ค 2๊ฐ ์๋ ์์น๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅํด๋๊ณ BFS๋ฅผ ๋๋ฆฌ๋ ๊ฒ ๋ ๋ซ๋ค. !visited.contains([nx, ny])์ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์ด๋ฏ๋ก ๋ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๊ฟ๋ผ. ์กฐ์ธ ํด์ฃผ์ ๋๋ก 1, 2๋ฅผ ์์ ํ๋ค. 2๊ฐ ์๋ ์์น๋ฅผ virusLocation์ ์ ์ฅํ๋ค. visited๋ฅผ Set์ผ๋ก ๋ณ๊ฒฝํ๋ค. Set.contains()์ ์๊ฐ ๋ณต์ก๋๋ O(1) ๋ก์ปฌ์์๋ ๋์ ๋๊ฒ ์ฑ๋ฅ ํฅ์์ด ์์์ง๋ง ์ฌ์ ํ ๋ฐฑ์ค์์๋ ์๊ฐ ์ด๊ณผ์๋ค. ๊ทธ๋์ ์ค์ํํธ๋ก ํต๊ณผํ์ ๋ถ์ ํ์ด๋ฅผ ..
Programmers: ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ
Programmers: ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ
2021.04.28์ ๋ ฌ์ ์ ๋นํ ์กฐ๊ฑด์ ์ฃผ์ด์ ํธ๋๋ฐ, ๋ฌธ์์ด์ ์ธ๋ฑ์ค๋ก ์ง์ ์ ๊ทผ์ด ์๋์ ๋ฐฐ์ด๋ก ๋ณํํด์ ์ ๊ทผ, ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค. ์ด๋ฐ ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ํ ๋๋ฉด, ํ์ด์ฌ์ผ๋ก ํธ๋ ๊ฒ ์ข ๋ ์ฌ์ด ๊ฑฐ ๊ฐ๋ค. ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/12915?language=swift ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift func solution(_ strings:[String], _ n:Int) -> [String] { let answer = strings.sorted(by: { if Array($0)[n] == Array($1)[n] { return $0 < $1 } return Array($0)[n] < Array($1)[n] }) return answ..
Programmers: K๋ฒ์งธ ์
Programmers: K๋ฒ์งธ ์
2021.04.27๋จ์๋ฌด์ํ๊ฒ commands ๋ฐฐ์ด ์ํํ๋ฉด์ ์๊ตฌ ์ฌํญ๋๋ก ๋ง์ถฐ์ ์ฝ๋ฉํ๋ค. ์์ ์ ํ์๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์์ฒญ ๊ฐ๊ฒฐํ๊ฒ ํด๋จ๋๋ฐ, ์ค์ํํธ๋ก๋ ๊ทธ๋ ๊ฒ ๊ตฌํํ๋ ค๋ฉด subscript๋ฅผ ๊ตฌํํ๋ฉด ๋ ๊ฑฐ ๊ฐ์๋ฐ ์ผ๋จ์ ํจ์ค. ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/42748?language=swift ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift import Foundation func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var answer = [Int]() for command in commands { let i = command[0]-1 let j = command[1]-1 let k = command..
Programmers: ๋ฐฉ๋ฌธ ๊ธธ์ด
Programmers: ๋ฐฉ๋ฌธ ๊ธธ์ด
2021.04.2719:15 16:14์ ์ด์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ด ๋ ์คํํ ์ฝ๋๋ 1~8๋ฒ๊น์ง๋ ๋ง์์ผ๋ ๊ทธ ์ดํ์ ํ
์คํธ์์๋ ์คํจํ๋ค. ๊ทธ๋์ ์ง๋ฌธ ๊ฒ์ํ์ ์ฐธ๊ณ ํ์๊ณ , UDU์ ๊ฒฝ์ฐ๊ฐ 1์ด ๋์์ผ ํ๋ค๋ ๊ธ์ ๋ณด๊ณ ์์ฑ์์ผฐ๋ค. Xcode๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ํ๋ก๊ทธ๋๋จธ์ค์์ ์ง์ ํ์๋ค. dirs๋ฅผ ์ํํ๋ฉด์ dir์ ๊ฐ์ ๋ฐ๋ผ ๋์์ ์ฒ๋ฆฌํ๋ค. enumerated()๋ ๋๋ฒ๊น
ํ๋ ค๊ณ ์ด ๊ฑฐ๋ผ ๊ตณ์ด ํ์ ์์ ~= ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๋ฒ์๋ฅผ ํ์ธํ๊ณ , ํด๋น ๋ฒ์์ ์ผ์นํ๋ฉด ๋์ ์ํ. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ dir๋ก ๋์ด๊ฐ๋ค. ์ ๊ฐ๋ณธ ๊ธธ๋ง visited ๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค. ์ด๊ฒ์ ํ์ธํ๊ธฐ ์ํด, ํ์ฌ ์์น์ ์ด์ ์์น๋ฅผ ๋ชจ๋ ์ ์ฅํ๋ค. ์ฒ์์๋ ์ด๋ ๊ฒ๋ง ํ์ธํ๋ค. if !visited.contains([curX, curY, ..
Swift: ๊ธ์ ์ ์ธ Guard ์ฌ์ฉ
Swift: ๊ธ์ ์ ์ธ Guard ์ฌ์ฉ
2021.04.25๋ ์ธ ์ค์ํํธ 30ํธ๋ฅผ ์ฝ๋ค๊ฐ, ์๋ฟ๋ ๋ถ๋ถ์ด ์์ด์ ์์ฝ, ์ ๋ฆฌํ๋ค. ์๊ณ ๋ฆฌ์ฆ ํ ๋๋ ๋น์ทํ๊ฒ ๋ง์ด ์ฐ๋๋ฐ (while !queue.isEmpty) ์ด๊ฑธ ์ฝ๊ณ ์ ๊ณ ์ณ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. Use Positive Guards guard ํค์๋์ ์ฃผ์ ์ฉ๋ ๊ณ์ฐ์ ํ์ํ ์ต์
์ ์ธ๋ฉํ ๊ธฐ๋ฅ์ ๋ํ ์ ์ ์กฐ๊ฑด์ ๋ช
์ ์ฌ๊ธฐ์๋ ๋ ๋ฒ์งธ ์ฉ๋์ ๋ํด ์ค๋ช
ํ๋ค. guard !pieces.isEmpty else { return } ์ ์ฝ๋๋ ๋ ๊ฐ์ง ๋จ์ ์ด ์๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ โ !๋ฅผ ์๊ธฐ ์ฝ๋ค. ๋ด์ฌํํ๊ธฐ ์ด๋ ต๋ค. ์กฐ๊ฑด์ ์ฝ์ ๋, ์ฝ๋์ ์๋ฏธ๋ฅผ ์ ๋๋ก ์ดํดํ๊ธฐ ์ํด ์ฝ์ ๋จ์ด์ ์๋ฏธ๋ฅผ ๋ค์ง์ด์ผ ํ๋ค. Collection ํ๋กํ ์ฝ์ ์ฌ์ํ ๋์ฐ๋ฏธ๋ฅผ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. extens..