Programming/Algorithm
BOJ: #15655 - N๊ณผ M (6)
BOJ: #15655 - N๊ณผ M (6)
2021.04.2304:23 N๊ณผ M (1) ~ (5) ๋ฌธ์ ๋ ์ข
๋ง๋ถ์์ ๋์จ ์ฝ๋๋ฅผ ํ์ฉํด์ ํ์๋ค. (1)์ ํผ ์ฝ๋๋ก (2)๋ฅผ ํ๊ณ , (3)์ ํ๊ณ … ์ด๋ฐ์์ผ๋ก ๋ฒ ์ด์ค ์ฝ๋์์ ์ ๋ถ ์ง์ฐ๊ณ ์ฒ์๋ถํฐ ํ์ง ์๊ณ ์์ฉํด๋๊ฐ๋๋ฐ, (6)์ ์์ ๋ฒ ์ด์ค ์ฝ๋๋ฅผ ์ง์ฐ๊ณ ํ์๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/15655 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] let nums = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted() var picked = ..
BOJ: #15654 - N๊ณผ M (5)
BOJ: #15654 - N๊ณผ M (5)
2021.04.23์ค๋ณต์์ด ๋ฐฉ๋ฌธ ํด์ผํ๋ค๋ ์ ์์ N๊ณผ M (1)๊ณผ ๋์ผํ๊ฒ visited ๋ณ์๋ฅผ ์ด์ฉํด์ ์ฒดํฌํ๋ฉด ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋ฌธ์ ๋ ์์ฐจ์ ์ธ ์ซ์์ ์กฐํฉ์ ๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ซ์๋ค์ ์กฐํฉ์ ๊ตฌํด์ผํ๊ธฐ ๋๋ฌธ์, ๋ฐฐ์ด ๋์ ๋์
๋๋ฆฌ๋ฅผ ์ด์ฉํด ํ์๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/15654 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] let nums = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted() var picked = [..
BOJ: #15652 - N๊ณผ M (4)
BOJ: #15652 - N๊ณผ M (4)
2021.04.23N๊ณผ M (3) ๋ฌธ์ ์์ ํ๊ฐ์ง ์์ธ๋ง ์ฒ๋ฆฌํด์ฃผ๋ฉด ํ๋ฆฐ๋ค. ๋ฐ๋ก ์ง์ ์ ๊ณ ๋ฅธ ์ซ์๋ณด๋ค ํ์ฌ ์ซ์๊ฐ ์์ ๊ฒฝ์ฐ(= ๋น๋ด๋ฆผ์ฐจ์) ํด๋น ์ซ์๋ ๊ฑด๋๋ด๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/15652 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] var picked = [String]() /* n: ์ ์ฒด ์์์ ์ picked: ์ง๊ธ๊น์ง ๊ณ ๋ฅธ ์์๋ค์ ๋ฒํธ toPick: ๋ ๊ณ ๋ฅผ ์์์ ์ ์ผ ๋, ์์ผ๋ก toPick๊ฐ์ ์์๋ฅผ ๊ณ ๋ฅด๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ถ๋ ฅํ๋ค */ func pick(n: Int, toPick: Int)..
BOJ: #15651 - N๊ณผ M (3)
BOJ: #15651 - N๊ณผ M (3)
2021.04.23์ข
๋ง๋ถ์ ์์๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ๊ณ ์๋๋ฐ, ๋์ผํ ์ฝ๋์์๋ ๋ถ๊ตฌํ๊ณ ์ค์ํํธ์์๋ ์๊ฐ ์ด๊ณผ, ํ์ด์ฌ์์๋ ํต๊ณผ๋๋ ๊ธฐ๋ฌํ ํ์์ด ์์๋ค. ์๋ ์ฝ๋๋ ๋งค๊ฐ ๋ณ์๋ก picked ๋ฐฐ์ด์ inout์ผ๋ก ๋ฐ๊ณ ์์๋๋ฐ, ์ด๊ฒ์ด ๋ฌธ์ ์๋ค. ๋์์ ์ฃผ์ ํํ๋๊ป ์ด ์๋ฆฌ๋ฅผ ๋น์ด ๊ฐ์ฌ์ ๋ง์์ ๋๋ฆฐ๋ค. ๐ ์์ธ ์ฐพ๋๋ค๊ณ 1์๊ฐ์ ํค๋งธ๋ค. ํํ ๋ฌธ์ https://www.acmicpc.net/problem/15651 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = input[1] var picked = [Int]() /* n: ์ ์ฒด ์์์ ์ picked: ์ง๊ธ๊น์ง ๊ณ ..
Programmers: ์์ ๊ฒ์
Programmers: ์์ ๊ฒ์
2021.04.2216:26 ์ ํ์ฑ์ ํต๊ณผํ์ง๋ง, ํจ์จ์ฑ์์ ์๊ฐ ์ด๊ณผ๋ก ์คํจํ๋ค. ์นด์นด์ค ๋ธ๋ก๊ทธ์ ์๋ ํ์ด๋ฅผ ์ฝ๊ธด ํ๋๋ฐ, ์…. ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/72412 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift // ์ ํ์ฑ O, ํจ์จ์ฑ X import Foundation func solution(_ info:[String], _ query:[String]) -> [Int] { var table = [[String]]() var result = [Int]() for i in info { let split = i.split(separator: " ").map { String($0) } table.append(split) } for q in query { let com..
Programmers: ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
Programmers: ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
2021.04.2254:45 ํธ๋ ๋ฐ ์ ๋ง ์ค๋๊ฑธ๋ ธ๋ค. ์ฌ์ค ์ด ๋ฌธ์ ๋ ์์ ์๋ ๋ช ๋ฒ ์๋ํ๋ค๊ฐ ์คํจํ๋๋ฐ ์ด๋ฒ์๋ ์ฑ๊ณต! ์ผ๋จ, ์ฒ์์๋ ๋๊ธฐ ํธ๋ญ ๋ชฉ๋ก์ด ๋น์ด์๊ณ , ํ(๋ค๋ฆฌ)๊ฐ ๋น ๋๊น์ง ๋ฐ๋ณตํ๊ฒ ํ๋๋ฐ ์ด์ ๋ ๋ชฐ๋ผ๋ ๋์ํ์ง ์์์ ๋์ฐฉํ ํธ๋ญ์ ์๊ฐ ์
๋ ฅ์ผ๋ก ๋ค์ด์จ ๋๊ธฐ ํธ๋ญ ์์ ๊ฐ์ ๋๊น์ง ๋ฐ๋ณตํ๊ธฐ๋ก ํ๋ค. ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๊ณ ์๋ ํธ๋ญ์ด ์๋์ง ํ์ธํ๋ค. ์ด์ฐจํผ 1์ด์ ํ ๋์ฉ๋ฐ์ ๋ชป ์์ง์ด๋ ๊ฐ์ฅ ์ฒซ ํธ๋ญ๋ง ํ์ธํ๋ฉด ๋๋ค. ๋ค๋ฆฌ์ ์๋ ํธ๋ญ์ ๋ฌด๊ฒ์ ๋๊ธฐ ํธ๋ญ์ ๋งจ ์์ ์๋ ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ ํฉํ์ ๋, ์ด๊ณผํ์ง ์์ผ๋ฉด queue์ ๋ฃ์ด์ค๋ค. ์ด ๋, ํ์ฌ ์๊ฐ์ ๊ฐ์ด ๋ฃ์ด์ 2์์ ์๊ฐ์ ํ์ธํ ๋ ์ด๋ค. ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/42583..
BOJ: #10829 - ์ด์ง์ ๋ณํ
BOJ: #10829 - ์ด์ง์ ๋ณํ
2021.04.21์ฌ๊ท๋ฅผ ์ด์ฉํ ์์ ํ์์ ์ฐ์ตํ๋ ค๊ณ ํ์๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/10829 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let x = Int(readLine()!)! var results = [Int]() func binary(_ n: Int) { // ๊ธฐ์ ์ฌ๋ก1: n์ด 0์ด๋ฉด ๋๋ธ๋ค. if n == 0 { results.append(0) return } // ๊ธฐ์ ์ฌ๋ก2: n์ด 1์ด๋ฉด ๋๋ธ๋ค. if n == 1 { results.append(1) return } // 2๋ก ๋๋ ์์ ๋๋จธ์ง๋ฅผ results์ ์ ์ฅํ๊ณ , 2๋ก ๋๋ ์๋ฅผ ์ฌ๊ท ํธ์ถํ๋ค. results.append(n%2) binary(n/2) } binary(x) print(results.reversed()...
BOJ: #7795 - ๋จน์ ๊ฒ์ธ๊ฐ ๋จนํ ๊ฒ์ธ๊ฐ
BOJ: #7795 - ๋จน์ ๊ฒ์ธ๊ฐ ๋จนํ ๊ฒ์ธ๊ฐ
2021.04.2003:19 ์
๋ ฅ๋ฐ์ a, b ๋ฐฐ์ด์ ์ ๋ ฌํ ํ ์ํํ๋ฉด์ a[i] > b[j]์ธ ๊ฒฝ์ฐ answer์ +1์ ํ๋ค. ๋ฐ๋์ธ ๊ฒฝ์ฐ์๋ (์ด๋ฏธ ์ ๋ ฌ์ ํ ์ํ์ด๋ฏ๋ก) b ๋ฐฐ์ด์ ๋ ์ํํ ํ์๊ฐ ์์ด break๋ก ๋น ์ ธ๋์จ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/7795 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let t = Int(readLine()!)! for _ in 0.. j { answer += 1 } else { break } } } print(answer) }
BOJ: #1822 - ์ฐจ์งํฉ
BOJ: #1822 - ์ฐจ์งํฉ
2021.04.20Set์ ํ์ฉํ ๋ฌธ์ ๋ฌธ์ https://www.acmicpc.net/problem/1822 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = readLine()!.split(separator: " ").map { Int(String($0))! } let a = readLine()!.split(separator: " ").map { Int(String($0))! } let b = readLine()!.split(separator: " ").map { Int(String($0))! } let ans = Set(a).subtracting(Set(b)).sorted() print(ans.count) print(ans.map { String($0) }.joined(separator: " "))
BOJ: #11403 - ๊ฒฝ๋ก ์ฐพ๊ธฐ
BOJ: #11403 - ๊ฒฝ๋ก ์ฐพ๊ธฐ
2021.04.1922:57 ์ธ์ ํ๋ ฌ์ด ์ฃผ์ด์ง๊ณ ํ์ํ๋ ๋ฌธ์ . ์ธ์ ๋ฆฌ์คํธ ํํ๋ก ์ฃผ๋ก ํ์ด์ ์ฒ์์ ๊ฐ์ด ์ ์ ์กํ๋๋ฐ, ๋น์ทํ๊ฒ ์ ๊ทผํด์ ํ์๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/11403 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = Int(readLine()!)! var board = [[Int]]() for _ in 0..
BOJ: #2108 - ํต๊ณํ
BOJ: #2108 - ํต๊ณํ
2021.04.1920:52 ์ด ๋ฌธ์ ๊ฐ ๋ญ๋ผ๊ณ 20๋ถ์ด๋ ๊ฑธ๋ ธ์ง…. ๋ฌธ์ https://www.acmicpc.net/problem/2108 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift import Foundation let n = Int(readLine()!)! var nums = [Int]() var dict = [Int: Int]() for _ in 0.. 1 { print(mode[1]) } else { print(mode[0]) } // ๋ฒ์ print(nums[n-1] - nums[0])
BOJ: #1652 - ๋์ธ ์๋ฆฌ๋ฅผ ์ฐพ์๋ผ
BOJ: #1652 - ๋์ธ ์๋ฆฌ๋ฅผ ์ฐพ์๋ผ
2021.04.1710:40 ์์ฆ ๊ณ ์ฐจํจ์๋ฅผ ํ์ฉํด์ ๋ฌธ์ ๋ฅผ ๋ง์ด ํธ๋ ๊ฑฐ ๊ฐ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/1652 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift var n = Int(readLine()!)! var board = [[Bool]]() for _ in 0..= 2 { column += 1 } } } print(row, column)