๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿž Daily Loaf/์•Œ๊ณ ๋ฆฌ์ฆ˜14

[์‹ค๋ฒ„5][Swift]๋ฐฑ์ค€2563๋ฒˆ https://www.acmicpc.net/problem/2563 ๋‹ต์•ˆ์ฝ”๋“œimport Foundationlet n = Int(readLine()!)!var paper = [[Bool]](repeating: [Bool](repeating: false, count: 100), count: 100)for _ in 0..n์„ ์ž…๋ ฅ๋ฐ›์•„ ์ƒ‰์ข…์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.paper๋ผ๋Š” 100x100 ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ถˆ๋ฆฌ์–ธ ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ๊ฐ’์€ ๋ชจ๋‘ false์ž…๋‹ˆ๋‹ค.n๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ:์ƒ‰์ข…์ด์˜ ์™ผ์ชฝ ์•„๋ž˜ ๊ผญ์ง“์  ์ขŒํ‘œ (x, y)๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.(x, y)๋ถ€ํ„ฐ (x+9, y+9)๊นŒ์ง€์˜ ์˜์—ญ์„ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.์ตœ์ข…์ ์œผ๋กœ paper ๋ฐฐ์—ด์—์„œ true์ธ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.flatMap { $0 }๋กœ 2์ฐจ์› ๋ฐฐ์—ด์„.. 2024. 10. 14.
[๋ธŒ๋ก ์ฆˆ1][Swift]๋ฐฑ์ค€1546๋ฒˆ(map/reduce) https://www.acmicpc.net/problem/1546 ๋‹ต์•ˆ์ฝ”๋“œlet N = Int(readLine()!)!let scores = readLine()!.split(separator: " ").map { Double($0)! }let maxScore = scores.max()!let newScores = scores.map { $0 / maxScore * 100 }let average = newScores.reduce(0, +) / Double(N)print(average)let N = Int(readLine()!)!:์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N์„ ์ž…๋ ฅ๋ฐ›์•„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.!๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘์€ ์ž…๋ ฅ์ด ํ•ญ์ƒ ์œ ํšจํ•œ ์ •์ˆ˜์ผ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•  ๋•Œ๋งŒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.let scores = readL.. 2024. 10. 7.
[๋ธŒ๋ก ์ฆˆ2][Swift]๋ฐฑ์ค€10811๋ฒˆ(reverse) https://www.acmicpc.net/problem/10811 ๋‹ต์•ˆ์ฝ”๋“œlet input = readLine()!.split(separator: " ").map { Int($0)! }let N = input[0]let M = input[1]var baskets = Array(1...N)for _ in 0..let input = readLine()!.split(separator: " ").map { Int($0)! }:์ฒซ ๋ฒˆ์งธ ์ค„์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๊ณต๋ฐฑ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ ๋ถ€๋ถ„์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.!๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์ž…๋ ฅ์ด ํ•ญ์ƒ ์œ ํšจํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ๋งŒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.let N = input[0], let M = input[1]:์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์—์„œ N(๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐœ์ˆ˜)๊ณผ M(์—ญ์ˆœ ์ž‘์—…์˜ ํšŸ์ˆ˜)์„ ์ถ”์ถœํ•ฉ.. 2024. 10. 7.
[๋ธŒ๋ก ์ฆˆ2][Swift]๋ฐฑ์ค€3052๋ฒˆ(Set) https://www.acmicpc.net/problem/3052 ๋‹ต์•ˆ์ฝ”๋“œvar remainders = Set()for _ in 1...10 { if let input = readLine(), let number = Int(input) { remainders.insert(number % 42) }}print(remainders.count)var remainders = Set():์ •์ˆ˜ํ˜• Set์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Set์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ปฌ๋ ‰์…˜ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ค‘๋ณต๋œ ๋‚˜๋จธ์ง€๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.for _ in 1...10 {:10๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 10๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.if let input = readLine(), let number .. 2024. 10. 7.
[๋ธŒ๋ก ์ฆˆ3][Swift]๋ฐฑ์ค€5597(๋ฐฐ์—ด) https://www.acmicpc.net/problem/5597 ๋‹ต์•ˆ์ฝ”๋“œvar students = Array(repeating: false, count: 31)for _ in 1...28 { if let input = readLine(), let number = Int(input) { students[number] = true }}for i in 1...30 { if !students[i] { print(i) }}31๊ฐœ์˜ false ๊ฐ’์„ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (0๋ฒˆ ์ธ๋ฑ์Šค๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).28๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ true๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.1๋ถ€ํ„ฐ 30๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉด์„œ false์ธ ์ธ๋ฑ์Šค(์ฆ‰, ์ œ์ถœํ•˜์ง€ ์•Š์€ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ)๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค... 2024. 10. 7.
[๋ธŒ๋ก ์ฆˆ2][Swift]๋ฐฑ์ค€10813 https://www.acmicpc.net/problem/10813 ๋‹ต์•ˆ์ฝ”๋“œ// N(๋ฐ”๊ตฌ๋‹ˆ ๊ฐœ์ˆ˜)๊ณผ M(๊ณต์„ ๋ฐ”๊พธ๋Š” ํšŸ์ˆ˜) ์ž…๋ ฅ ๋ฐ›๊ธฐlet input = readLine()!.split(separator: " ").map { Int($0)! }let N = input[0]let M = input[1]// ๋ฐ”๊ตฌ๋‹ˆ ์ดˆ๊ธฐํ™” (1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ๊ณต)var baskets = Array(1...N)// M๋ฒˆ ๊ณต ๋ฐ”๊พธ๊ธฐfor _ in 0..temp๋ผ๋Š” ์ž„์‹œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ baskets[i]์˜ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.baskets[i]์— baskets[j]์˜ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.baskets[j]์— temp(์›๋ž˜ baskets[i]์˜ ๊ฐ’)๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.swapAt ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ• ์ˆ˜์žˆ์–ด์š”// i๋ฒˆ์งธ ๋ฐ”๊ตฌ๋‹ˆ์™€ .. 2024. 10. 7.
[๋ธŒ๋ก ์ฆˆ3][Swift]๋ฐฑ์ค€10810(Array) https://www.acmicpc.net/problem/10810 ๋‹ต์•ˆ์ฝ”๋“œ// N(๋ฐ”๊ตฌ๋‹ˆ ๊ฐœ์ˆ˜)๊ณผ M(๊ณต์„ ๋„ฃ๋Š” ํšŸ์ˆ˜) ์ž…๋ ฅ ๋ฐ›๊ธฐlet input = readLine()!.split(separator: " ").map { Int($0)! }let N = input[0]let M = input[1]// ๋ฐ”๊ตฌ๋‹ˆ ์ดˆ๊ธฐํ™” (1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฐ”๊ตฌ๋‹ˆ, ์ดˆ๊ธฐ์—๋Š” ๋ชจ๋‘ ๋น„์–ด์žˆ์Œ)var baskets = Array(repeating: 0, count: N)// M๋ฒˆ ๊ณต ๋„ฃ๊ธฐfor _ in 0..N(๋ฐ”๊ตฌ๋‹ˆ ๊ฐœ์ˆ˜)๊ณผ M(๊ณต์„ ๋„ฃ๋Š” ํšŸ์ˆ˜)์„ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.Array(repeating: 0, count: N)์œผ๋กœ N๊ฐœ์˜ ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ 0์€ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๋น„์–ด์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.M๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ.. 2024. 10. 5.
[๋ธŒ๋ก ์ฆˆ5][Swift]๋ฐฑ์ค€10951(while/EOF) https://www.acmicpc.net/problem/10951 ๋‹ต์•ˆ์ฝ”๋“œwhile let input = readLine() { let numbers = input.split(separator: " ").map { Int($0)! } print(numbers[0] + numbers[1])}while let ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ readLine()์˜ ๊ฒฐ๊ณผ๋ฅผ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ์ด ์žˆ๋Š” ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.๊ฐ ๋ฐ˜๋ณต์—์„œ:์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์™€ ๋‘ ๋ฒˆ์งธ ์ˆซ์ž์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.์ž…๋ ฅ์ด ๋” ์ด์ƒ ์—†์œผ๋ฉด (EOF์— ๋„๋‹ฌํ•˜๋ฉด) ๋ฃจํ”„๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.input = readLine()! ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์•ˆ ์ ์€ ์ด์œ ์•ˆ์ „์„ฑ:readLine(.. 2024. 10. 4.
[๋ธŒ๋ก ์ฆˆ5][Swift]๋ฐฑ์ค€10952(while) https://www.acmicpc.net/problem/10952 ๋‹ต์•ˆ์ฝ”๋“œwhile true { let input = readLine()!.split(separator: " ").map { Int($0)! } let A = input[0] let B = input[1] if A == 0 && B == 0 { break // ์ž…๋ ฅ์ด 0 0์ด๋ฉด ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ } print(A + B)}while true๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.๊ฐ ๋ฐ˜๋ณต์—์„œ:readLine()์œผ๋กœ ํ•œ ์ค„์„ ์ž…๋ ฅ ๋ฐ›๊ณ , ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ ํ›„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ A์—, ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ B์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.A์™€ B๊ฐ€ ๋ชจ๋‘ 0์ด๋ฉด break๋ฌธ์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ ‡์ง€.. 2024. 10. 4.
[๋ธŒ๋ก ์ฆˆ5][Swift]๋ฐฑ์ค€10950(ํ…Œ์ŠคํŠธ์ผ€์ด์Šค) https://www.acmicpc.net/problem/10950 ๋‹ต์•ˆ์ฝ”๋“œ// ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ ์ž…๋ ฅ ๋ฐ›๊ธฐlet T = Int(readLine()!)!// ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด A+B ๊ณ„์‚ฐ ๋ฐ ์ถœ๋ ฅfor _ in 1...T { let input = readLine()!.split(separator: " ").map { Int($0)! } let A = input[0] let B = input[1] print(A + B)}์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ T๋ฒˆ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ _๋Š” ๋ฃจํ”„ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.๊ฐ ๋ฐ˜๋ณต์—์„œ:readLine()์œผ๋กœ ํ•œ ์ค„์„ ์ž…๋ ฅ ๋ฐ›๊ณ , ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ ํ›„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ฒซ ๋ฒˆ.. 2024. 10. 4.