Programming/Algorithm
BOJ: #11170 - 0์ ๊ฐ์
BOJ: #11170 - 0์ ๊ฐ์
2021.04.1704: 21 ๋ฌธ์ https://www.acmicpc.net/problem/11170 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let t = Int(readLine()!)! for _ in 0..
BOJ: #1026 - ๋ณด๋ฌผ
BOJ: #1026 - ๋ณด๋ฌผ
2021.04.1614:39 ๋ฌธ์ https://www.acmicpc.net/problem/1026 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = Int(readLine()!)! var a = readLine()!.split(separator: " ").map { Int(String($0))! } var b = readLine()!.split(separator: " ").map { Int(String($0))! } a.sort(by: >) b.sort(by:
ํ๋ ธ์ต๋๋ค! ๋ชจ์์ง - 2021๋
04์ 14์ผ(์)
ํ๋ ธ์ต๋๋ค! ๋ชจ์์ง - 2021๋ 04์ 14์ผ(์)
2021.04.15๋๋ฆ๋๋ก ํ์๋๋ฐ, ํ๋ ธ๊ฑฐ๋ ์๊ฐ ์ด๊ณผ์ธ ์ฝ๋ ๋ชจ์์ง BOJ: #2870 - ์ํ์์ ์
๋ ฅ์ด ๋ค์ด์ค๋ ๋ฌธ์์ด์์ ์ซ์๋ ๋ฐฐ์ด์ ๋ฐ๋ก ์ ์ฅํด์ ์ฒ๋ฆฌํ๋ค. ๋ชจ๋ ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ์๋ allSatisfy()๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ 0์ ์ ๊ท์์ผ๋ก ์ฒ๋ฆฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ฌ์ swift string number sort๋ก ๊ตฌ๊ธ๋งํด์ ๋์จ ๊ฑธ ์ฌ์ฉํ๋ค. ๊ทผ๋ฐ ํ๋ ธ์… ์ ํ๋ ธ๋์ง ๋ชจ๋ฅด๊ฒ ๋น ๋ฌธ์ https://www.acmicpc.net/problem/2870 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift import Foundation let n = Int(readLine()!)! var nums = [String]() for _ in 0..
BOJ: #10709 - ๊ธฐ์์บ์คํฐ
BOJ: #10709 - ๊ธฐ์์บ์คํฐ
2021.04.14๋ฌธ์์ด ์ฒ๋ฆฌํ๋ ๋ฌธ์ . ๊ตฌ๋ฆ์ด ์๋ ์๋ฆฌ๋, ์ด๋ฏธ ์ง๋๊ฐ ์๋ฆฌ๋ ์ฒ๋ฆฌํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ฆ์ด ์๋ ์๋ฆฌ๋ฅผ ๋ชจ๋ "-1"๋ก ์ด๊ธฐํํ๊ณ ํ๋ฒ๋ ๋ฐฉ๋ฌธํ์ง ์์ ๊ณณ๋ง ์๊ฐ์ ๋ฃ์ผ๋ฉด ๋๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/10709 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let size = readLine()!.split(separator: " ").map { Int(String($0))! } var board = [[String]]() for _ in 0..
BOJ: #4659 - ๋น๋ฐ๋ฒํธ ๋ฐ์ํ๊ธฐ
BOJ: #4659 - ๋น๋ฐ๋ฒํธ ๋ฐ์ํ๊ธฐ
2021.04.13์ฃผ์ด์ง ์๊ตฌ์ฌํญ์ ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ๋ฌธ์ https://www.acmicpc.net/problem/4659 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let vowel = Array("aeiou") while let input = readLine() { if input == "end" { break } var isAcceptable = true // ๋ชจ์ ํ๋๋ฅผ ๋ฐ๋์ ํฌํจ if !input.contains(where: ) { isAcceptable = false } // ๋ชจ์์ด 3๊ฐ ํน์ ์์์ด 3๊ฐ ์ฐ์์ผ๋ก ์ค๋ฉด ์ ๋๋ค. var arr = Array(input) var isVowel = vowel.contains(input.first!) var prevChar = input.first! var count = 0..
BOJ: #2910 - ๋น๋ ์ ๋ ฌ
BOJ: #2910 - ๋น๋ ์ ๋ ฌ
2021.04.13๋์
๋๋ฆฌ์ sorted๋ฅผ ์ด์ฉํด์ ํ์๋๋ฐ, ์ฝ๋๋ฅผ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ๊ทธ๋ค์ง ๊นจ๋ํ์ง ์๋ค. ๊ทธ๋ฅ ์ด๋ฐ์์ผ๋ก ํ ์ ์๋ค~ ์ ๋๋ก๋ง ์ฐธ๊ณ ๋ฐ๋. ๋ฌธ์ https://www.acmicpc.net/problem/2910 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = readLine()!.split(separator: " ").map { Int(String($0))! } var message = readLine()!.split(separator: " ").map { Int(String($0))! } var dict = [Int: Int]() for m in message { dict[m, default: 0] += 1 } var answer = [Int]() for (key, value) in dict.sorted(..
BOJ: #2828 - ์ฌ๊ณผ ๋ด๊ธฐ ๊ฒ์
BOJ: #2828 - ์ฌ๊ณผ ๋ด๊ธฐ ๊ฒ์
2021.04.13๋ฐ๊ตฌ๋์ ํฌ๊ธฐ๋ฅผ ๋ฐ๊ตฌ๋์ ๊ฐ์๋ก ์ดํดํด์ ์์ฒญ ํด๋ฉจ๋ค. ํ๊ตญ์ด๋ถํฐ ๋ค์ ๊ณต๋ถํด์ผ๊ฒ ๋ค^_ใ
๋ฌธ์ https://www.acmicpc.net/problem/2828 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = readLine()!.split(separator: " ").map { Int(String($0))! } var start = 0 var end = n[1] - 1 let j = Int(readLine()!)! var queue = [Int]() for _ in 0..
BOJ: #2583 - ์์ญ ๊ตฌํ๊ธฐ
BOJ: #2583 - ์์ญ ๊ตฌํ๊ธฐ
2021.04.13์ฃผ์ด์ง๋ ์ผ์ชฝ ์๋ ๊ผญ์ง์ , ์ค๋ฅธ์ชฝ ์ ๊ผญ์ง์ ์ ๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ์นํํ๋ ๊ณผ์ ์ ๋ฐ๋ก ์๊ฐํ๊ธฐ๊ฐ ์ด๋ ค์์ ์์ผ๋ก ์ด์ฌํ ๊ณ์ฐํ๋ฉด์ ํ์๋ค. ์ด ๊ณผ์ ์ดํ์๋ ํ์ ๋ฌธ์ ์ ๋์ผํ๊ฒ ํ๋ฉด ๋๋ค. ๊ฐ ์์ญ์ ๋์ด๋ visited์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ฉด ๋๋๋ฐ, ์ด ๋ ์์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ค๋ณต๊ฐ์ด ๋ค์ด๊ฐ์ ํฌ๊ธฐ๊ฐ ๋ง์ง ์์ visited๋ฅผ Set์ผ๋ก ์ ์ธํ์ฌ ์ค๋ณต๊ฐ ์ฒ๋ฆฌ๋ฅผ ํด์คฌ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/2583 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let n = readLine()!.split(separator: " ").map { Int(String($0))! } var board = Array(repeating: Array(repeating: 0, count: n[1]), c..
BOJ: #2468 - ์์ ์์ญ
BOJ: #2468 - ์์ ์์ญ
2021.04.13๋ค์ด์ฌ ์ ์๋ ๋์ด๋ 1~100 ์ฌ์ด์ด๊ธฐ ๋๋ฌธ์, ์ฅ๋ง์ฒ ์ ๋ฌผ์ด ์์ผ ์ ์๋ ๋์ด๋ 1~100 ์ฌ์ด๋ค. ๊ทธ๋์ ๋ฐ๋ณตํ๋ฉด์ ์์ ์์ญ์ ๊ฐ์๋ฅผ ์ฒดํฌํด์ฃผ๋ฉด ๋๋๋ฐ, ์ด ๋ ์๋ฌด ์ง์ญ๋ ์ ๊ธฐ์ง ์์ ์ ์์ด์ ๋ฐ๋ณต๋ฌธ์ 0๋ถํฐ ์์ํ๊ฒ ํด ์คฌ๋ค. ์ด ์์ด๋์ด์ ๋ํ ๋ถ๋ถ์ ์ด ๊ธ์ ๋๊ธ์ ์ฐธ๊ณ ํ๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/2468 ๋ด๊ฐ ์์ฑํ ์ฝ๋ Swift let dx = [1, 0, -1, 0] let dy = [0, 1, 0, -1] let n = Int(readLine()!)! var board = [[Int]]() for _ in 0..
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ 7์ฅ - ๋ฐฐ์ด
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ 7์ฅ - ๋ฐฐ์ด
2021.01.19๋ฌธ์ ๊ฐ ์ ์ฒด์ ์ผ๋ก ์ด๋ ค์์ ํ์ง ๋ชปํ๋ค. ์ผ๋จ ๋ค์ 8์ฅ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๋ฐฐ์ด๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ค์ ํธ๋ ๋ฐ ์๊ฐ์ ์์์ผ๊ฒ ๋ค. ๋ฐฐ์ด์ ๊ฐ ๋๋ ๋ณ์ ์๋ฆฌ๋จผํธ์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ๊ตฌ์กฐ๋ก, ํ๋ ์ด์์ ์ธ๋ฑ์ค ๋๋ ํค๋ก ์๋ณ๋๋ค. ๋ ์์ ํฉ ๋ธ๋ฃจํธ ํฌ์ค ๋ฐฉ์์ผ๋ก ํ์๋ค. ๋น์ทํ๊ฒ ํ์ด์ ๋ฐ๋ก ์ ์ง๋ ์์์ ํ์ด1. ๋ธ๋ฃจํธ ํฌ์ค๋ก ๊ณ์ฐ ์๊ฐ ๋ณต์ก๋ → O(n^2) def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i] + nums[j] == target: return [i, j] ํ์ด2. in์ ์ด์ฉํ ํ์ ๋ชจ๋ ์กฐํฉ์ ๋น๊ตํ์ง ์๊ณ ..
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ 6์ฅ - ๋ฌธ์์ด ์กฐ์
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ 6์ฅ - ๋ฌธ์์ด ์กฐ์
2021.01.10๋ฌธ์์ด์ ๋ค๋ฃจ๋ ์ ํ์ ๋ฌธ์ ๋ฅผ ๋ ํ์ด๋ด์ผ๊ฒ ๋ค. ๋ฑ ๋ฌธ์ ๋ง ๋ด์๋ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํ ์ง ๊ฐ์ด ์ ์กํ๋ค. ๐ข ์ ํจํ ํฐ๋ฆฐ๋๋กฌ ๋ด๊ฐ ์์ฑํ ์ฝ๋ def isPalindrome(self, s: str) -> bool: filter_string = "" for a in s.lower(): if a.isalnum(): filter_string += a return filter_string == filter_string[::-1] ํ์ด1. ๋ฆฌ์คํธ๋ก ๋ณํ def isPalindrome(self, s: str) -> bool: strs = [] for char in s: if char.isalnum(): strs.append(char.lower()) # ํฐ๋ฆฐ๋๋กฌ ํ๋ณ ์ฌ๋ถ while len(strs) > 1: if ..
BOJ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ - 1475๋ฒ
BOJ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ - 1475๋ฒ
2020.12.0511724๋ฒ: ์ฐ๊ฒฐ ์์์ ๊ฐ์ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N๊ณผ ๊ฐ์ ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฐ์ ์ ์ ๋์ u์ v๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ์ ๊ฐ์ ์ ํ ๋ฒ๋ง ์ฃผ www.acmicpc.net ๋ฌธ์ ๋ฐฉํฅ ์๋ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋, ์ฐ๊ฒฐ ์์ (Connected Component)์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ด๊ฐ ์์ฑํ ์ฝ๋ # https://www.acmicpc.net/problem/11724 # ์ฐ๊ฒฐ ์์์ ๊ฐ์ import sys def bfs(start_v): discovered = [start_v] queue = [start_v] while queue: x = queue..