문제 풀이를 할 때 마다 계속 추가됩니다.

cmd + F 를 통해 문제번호 찾기를 추천드립니다.

풀이글이 길어짐에 따라 글을 나눕니다. 다음 글은 아래 링크에서 확인하실 수 있습니다.

https://developer-p.tistory.com/173

 

백준 Swift 2869번

문제 풀이를 할 때 마다 계속 추가됩니다. cmd + F 를 통해 문제번호 찾기를 추천드립니다. 풀이글이 길어짐에 따라 글을 나눕니다. 지난번 글은 아래 링크에서 확인하실 수 있습니다. https://develope

developer-p.tistory.com

 

22.02.10 최초 게시

22.02.11 업데이트

22.02.16 업데이트

22.02.21 업데이트

22.02.22 업데이트

 

아래 깃허브 주소에서 백준 Swift 문제풀이를 확인하실 수 있습니다.

https://github.com/SuminPark-developer/BaekJoonPS

 

GitHub - SuminPark-developer/BaekJoonPS: 백준 Swift PS

백준 Swift PS. Contribute to SuminPark-developer/BaekJoonPS development by creating an account on GitHub.

github.com

 


 

백준 Swift 1000번, 1001번

// MARK: - 백준 1000번
import Foundation

let input = readLine()!.components(separatedBy: " ")
let A: Int = Int(input[0])!
let B: Int = Int(input[1])!
print(A + B)

//let input = readLine()?.components(separatedBy: " ")
//if let a = input?[0], let b = input?[1], let numA = Int(a), let numB = Int(b) {
//    let result = numA + numB
//    print(result)
//}

백준 Swift 1000번(2)

// MARK: - 백준 1000번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B) = (input[0], input[1])
print(A + B)

 


 

백준 Swift 1008번

// MARK: - 백준 1008번
import Foundation
let input = readLine()!.components(separatedBy: " ")
let A = Double(input[0])!
let B = Double(input[1])!

var answer: Double = A / B

print(answer)

 

백준 Swift 1008번(2)

// MARK: - 1008번
let input = readLine()!.split(separator: " ").map{Double(String($0))!}
let (A, B) = (input[0], input[1])
print(A / B)

 

백준 Swift 2557번

import Foundation
print("Hello World!")

 


 

백준 Swift 10718번

// MARK: - 백준 10718번
import Foundation
for _ in 0..<2 {
    print("강한친구 대한육군")
}

 


 

백준 Swift 10171번

// MARK: - 백준 10171번
import Foundation
print("\\    /\\")
print(" )  ( ')")
print("(  /  )")
print(" \\(__)|")

 


 

백준 Swift 10998번

// MARK: - 10998번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B) = (input[0], input[1])
print(A * B)

 


 

백준 Swift 10869번

// MARK: - 10869번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B) = (input[0], input[1])
print(A + B)
print(A - B)
print(A * B)
print(A / B)
print(A % B)

 


 

백준 Swift 10430번

// MARK: - 10430번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B, C) = (input[0], input[1], input[2])
print((A+B)%C)
print(((A%C) + (B%C))%C)
print((A*B)%C)
print(((A%C) * (B%C))%C)

 


 

백준 Swift 2588번

// MARK: - 2588번
let A = Int(readLine()!)!
let B = Int(readLine()!)!
var bCopy = B

var array: [Int] = []

while bCopy > 0 {
    array.append(bCopy % 10)
    bCopy = bCopy / 10
}

for num in array {
    print(A * num)
}

print(A * B)

 


 

백준 Swift 1330번

// MARK: - 1330번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B) = (input[0], input[1])

if A > B {
    print(">")
}
else if A < B {
    print("<")
}
else if A == B {
    print("==")
}

 


 

백준 Swift 9498번

// MARK: - 9498번
import Foundation
let score = Int(readLine()!)!

//if score >= 90 {
//    print("A")
//}
//else if score >= 80 {
//    print("B")
//}
//else if score >= 70 {
//    print("C")
//}
//else if score >= 60 {
//    print("D")
//}
//else {
//    print("F")
//}


switch score {
case 90...100:
    print("A")
case 80..<90:
    print("B")
case 70..<80:
    print("C")
case 60..<70:
    print("D")
default:
    print("F")
}

 


백준 Swift 2753번

// MARK: - 2753번
let year = Int(readLine()!)!

if (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 {
    print("1")
}
else {
    print("0")
}

 


백준 Swift 14681번

// MARK: - 14681번
let x = Int(readLine()!)!
let y = Int(readLine()!)!

if x > 0 && y > 0 {
    print("1")
}
else if x < 0 && y > 0 {
    print("2")
}
else if x < 0 && y < 0 {
    print("3")
}
else {
    print("4")
}

 


백준 Swift 2884번

// MARK: - 2884번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
var (H, M) = (input[0], input[1])

if H == 0 { // 계산을 위해 0시를 24시로 변환.
    H = 24
}

let totalMinute: Int = H * 60 + M - 45

var answerH: Int = totalMinute / 60
let answerM: Int = totalMinute % 60

if answerH == 24 { // 24시면 0시로 바꿔줘야 함.
    answerH = 0
}

print("\(answerH) \(answerM)")

 


백준 Swift 2739번

// MARK: - 2739번
let N = Int(readLine()!)!

for i in 1...9 {
    print("\(N) * \(i) = \(N * i)")
}

 


백준 Swift 10950번

// MARK: - 10950번
let T = Int(readLine()!)!

for _ in 0..<T {
    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
    print(input[0] + input[1])
}

 


백준 Swift 8393번

// MARK: - 8393번
let n = Int(readLine()!)!
var sum: Int = n * (n + 1) / 2
print(sum)

 


백준 Swift 2741번

// MARK: - 2741번
let N = Int(readLine()!)!
for i in 1...N {
    print(i)
}

 


백준 Swift 2742번

// MARK: - 2742번
let N = Int(readLine()!)!
for i in stride(from: N, through: 1, by: -1) {
    print(i)
}

 


백준 Swift 11021번

// MARK: - 11021번
let T = Int(readLine()!)!
for i in 1...T {
    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
    let A: Int = input[0]
    let B: Int = input[1]
    print("Case #\(i): \(A + B)")
}

 


백준 Swift 11022번

// MARK: - 11022번
let T = Int(readLine()!)!
for i in 1...T {
    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
    let (A, B) = (input[0], input[1])
    print("Case #\(i): \(A) + \(B) = \(A + B)")
}

 


백준 Swift 2438번

// MARK: - 2438번
let N = Int(readLine()!)!
for i in 1...N {
    for _ in 0..<i {
        print("*", terminator: "")
    }
    print()
}

 


백준 Swift 2439번

// MARK: - 2439번
let N = Int(readLine()!)!
for i in 1...N {
    for _ in stride(from: N, to: i, by: -1) {
        print(" ", terminator: "")
    }
            
    for _ in 0..<i {
        print("*", terminator: "")
    }
    
    print()
}

 


백준 Swift 10871번

// MARK: - 10871번
var input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (N, X) = (input[0], input[1])
var answer: [Int] = []


input = readLine()!.split(separator: " ").map{Int(String($0))!}

for num in input {
    if num < X {
        answer.append(num)
    }
}

for n in answer {
    print(n, terminator: " ")
}

 


백준 Swift 10952번

// MARK: - 10952번
var input = readLine()!.split(separator: " ").map{Int(String($0))!}
var (A, B) = (input[0], input[1])

repeat {
    print(A + B)
    input = readLine()!.split(separator: " ").map{Int(String($0))!}
    (A, B) = (input[0], input[1])
} while A != 0 && B != 0

 


백준 Swift 10951번

// MARK: - 10951번 // https://www.acmicpc.net/board/view/39199
//while true {
//    let input = readLine()!.split(separator: " ").map{Int(String($0))!}
//    let (A, B) = (input[0], input[1])
//    print(A + B)
//}
while let input = readLine() {
    print(input.split(separator: " ").map{Int(String($0))!}.reduce(0, +))
}

 


백준 Swift 1110번

// MARK: - 1110번
var length: Int = 0
let N = Int(readLine()!)!
var num: Int = 0
var sum: Int = 0
var answer: Int = N

while true {
    
    num = answer % 10
    sum = answer / 10 + answer % 10
    
    answer = num * 10 + (sum % 10)
    length += 1
    
    if answer == N {
        print(length)
        break
    }
    
}

 


백준 Swift 10818번

// MARK: - 10818번
let N: Int = Int(readLine()!)!
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
print(input.min()!, input.max()!)

 


백준 Swift 2562번

// MARK: - 2562번
var num: [Int] = []
for _ in 0..<9 {
    let N = Int(readLine()!)!
    num.append(N)
}

print(num.max()!)
print(num.firstIndex(of: num.max()!)! + 1)

 


백준 Swift 2577번

// MARK: - 2577번
let A = Int(readLine()!)!
let B = Int(readLine()!)!
let C = Int(readLine()!)!

let num = String(A * B * C)
var answer = Array(repeating: 0, count: 10)

for ch in num {
    answer[Int(String(ch))!] += 1
}

for n in answer {
    print(n)
}

 


백준 Swift 3052번

// MARK: - 3052번
var numArray: [Int] = []
for _ in 0..<10 {
    let n = Int(readLine()!)!
    numArray.append(n % 42)
}
var setAnswer: Set<Int> = []

setAnswer = Set(numArray)

print(setAnswer.count)

 


백준 Swift 1546번

// MARK: - 1546번
let N = Int(readLine()!)!
var input = readLine()!.split(separator: " ").map{Double(String($0))!}
let maxScore = input.max()!
for i in 0..<input.count {
    input[i] = input[i] / maxScore * 100
}

let answer = input.reduce(0, +) / Double(input.count) // 답 = (합 / 개수)

print(answer)

 


백준 Swift 8958번

// MARK: - 8958번
let N = Int(readLine()!)!
var score: Int = 0

for _ in 0..<N {
    score = 0
    let input = readLine()!.split(separator: "X").map{String($0)}
    
    for str in input {
        score += str.count * (str.count + 1) / 2
    }
    
    print(score)
}

 


백준 Swift 4344번

// MARK: - 4344번
import Foundation
let C = Int(readLine()!)!

for _ in 0..<C {
    let input = readLine()!.split(separator: " ").map{Double(String($0))!}
    var scoreArray: [Double] = Array(repeating: 0.0, count: Int(input[0]))

    for i in 0..<scoreArray.count {
        scoreArray[i] = input[i + 1]
    }

    let sum: Double = scoreArray.reduce(0, +)
    let average: Double = Double(sum) / Double(input[0])

    var count: Double = 0

    for num in scoreArray {
        if num > average {
            count += 1
        }
    }

    let answer: Double = count / input[0] * 100
    let percent: String = String(format: "%.3f", answer)
    print("\(percent)%")

}

 


백준 Swift 11654번

// MARK: - 11654번
let input = readLine()!

print(Character(input).asciiValue!)

 


백준 Swift 11720번

// MARK: - 11720번
let N = Int(readLine()!)!
let input = readLine()!
var numArray: [Int] = []

for num in input {
    numArray.append(Int(String(num))!)
}

print(numArray.reduce(0, +))

 


백준 Swift 10809번

// MARK: - 10809번
let S = readLine()!
var answerArray = Array(repeating: -1, count: 26)
var count: Int = 0

for ch in S {
    let temp: Character = Character(String(ch))
    
    let index: Int = Int(temp.asciiValue!) - Int(Character("a").asciiValue!)
    
    if answerArray[index] == -1 {
        answerArray[index] = count
    }
    
    count += 1
    
}

for i in answerArray {
    print(i, terminator: " ")
}

 

백준 Swift 10809번 (2)

// MARK: - 10809번 (2)
let input = Array(readLine()!)

for i in Character("a").asciiValue!...Character("z").asciiValue! {
    let ch = Character(UnicodeScalar(i))
    
    if input.contains(ch) {
        print("\(input.firstIndex(of: ch)!)", terminator: " ")
    }
    else {
        print("-1", terminator: " ")
    }
    
}

 


백준 Swift 2675번

// MARK: - 2675번
let T = Int(readLine()!)!

for _ in 0..<T {
    let input = readLine()!.split(separator: " ")
    let R: Int = Int(input[0])!
    let S: String = String(input[1])
    
    for ch in S {
        for _ in 0..<R {
            print(ch, terminator: "")
        }
    }
    
    print()
    
}

 


백준 Swift 1157번

// MARK: - 1157번
import Foundation
var input = readLine()!
input = input.lowercased()

var alphabetArray = Array(repeating: 0, count: 26)

for ch in input {
    
    let index: Int = Int(ch.asciiValue!) - Int(Character("a").asciiValue!)
    
    alphabetArray[index] += 1
    
}

var max: Int = alphabetArray.max()!
var answer: String = ""
var count: Int = 0 // 가장 많이 사용된 알파벳이 여러개인지 체크하기 위해.
var isMany: Bool = false

for i in 0..<alphabetArray.count {
    if alphabetArray[i] == max {
        count += 1
        answer = String(UnicodeScalar(65 + i)!)
    }
    
    if count >= 2 {
        isMany = true
        break
    }
}

if isMany == true {
    print("?")
}
else {
    print(answer)
}

 


백준 Swift 1152번

// MARK: - 1152번
let input = readLine()!.split(separator: " ").map{String($0)}
print(input.count)

 


백준 Swift 2908번(1)

// MARK: - 2908번
let input = readLine()!.split(separator: " ").map{String($0)}
var A: String = input[0]
var B: String = input[1]

var reversedA: String = String(A.reversed())
var reversedB: String = String(B.reversed())

var newA: Int = Int(String(reversedA))!
var newB: Int = Int(String(reversedB))!

newA > newB ? print(newA) : print(newB)

 


백준 Swift 2908번(2)

// MARK: - 2908번(2)
let input = readLine()!.split(separator: " ").map{String($0)}
let A: Int = Int(String(input[0].reversed()))!
let B: Int = Int(String(input[1].reversed()))!

print(max(A, B))

 


백준 Swift 5622번

// MARK: - 5622번
let input = readLine()!
let alphabet: [[String]] = [["A", "B", "C"], ["D", "E", "F"], ["G", "H", "I"], ["J", "K", "L"], ["M", "N", "O"], ["P", "Q", "R", "S"], ["T", "U", "V"], ["W", "X", "Y", "Z"]]
var answer: Int = 0

for ch in input {
    for (index, alpha) in alphabet.enumerated() {
        if alpha.contains(String(ch)) {
            answer += (index + 3)
            break
        }
    }
}

print(answer)

 


백준 Swift 1316번

// MARK: - 1316번
let N = Int(readLine()!)!
var answer: Int = 0

for _ in 0..<N {
    let input = readLine()!.map{String($0)}
    var group: [String] = []
    var isGroup: Bool = true
    
    for ch in input {
        if !group.contains(ch) {
            group.append(ch)
        }
        else if group.last != ch { // 연속된 문자열이 아니고 && 처음 나온 문자가 아니라는 소리니까,
            isGroup = false // 그룹 문자 아님.
        }
        
    }
    
    if isGroup == true {
        answer += 1
    }
    
}

print(answer)

 


백준 Swift 1712번

// MARK: - 1712번
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let (A, B, C) = (input[0], input[1], input[2])
var count: Int = 0

if C <= B {
    print("-1")
}
else {
    count = A / (C - B) + 1
    print(count)
}

 


백준 Swift 2839번

// MARK: - 2839번
var N = Int(readLine()!)!
var count: Int = 0

if N % 5 == 0 {
    count = N / 5
}
else {
    while N > 0 {
        N -= 3
        count += 1
        
        if N % 5 == 0 {
            count += N / 5
            break
        }
    }
    
    if N < 0 {
        count = -1
    }
    
}

print(count)

 


백준 Swift 2292번

// MARK: - 2292번
let N = Int(readLine()!)!
var count: Int = 0
var temp: Int = 1
var i: Int = 1

//1 |  6  |  12  |   18  |  24
//1 | 2~7 | 8~19 | 20~37 | 38~61


if N == 1 {
    count = 1
}
else {
    while true {
        count += 1
        
        if temp >= N {
            break
        }
        
        temp += i * 6
        i += 1
    }
    
}

print(count)

 


백준 Swift 1193번(1)

// MARK: - 1193번
let X = Int(readLine()!)!

if X == 1 {
    print("1/1")
}
else {
    var numerator = 1 // 분자
    var denominator = 2 // 분모

    while true {

        if X <= numerator + denominator {
            let a: Int = numerator + denominator - X + 1
            let b: Int = (denominator + 1) - a

            if denominator % 2 == 0 {
                print("\(b)/\(a)")
            }
            else {
                print("\(a)/\(b)")
            }
            break
        }
        else {
            numerator += denominator
            denominator += 1
        }

    }

}

 


백준 Swift 1193번(2)

// MARK: - 1193번(2)
let X = Int(readLine()!)!
var groupNumber: Int = 0
var count: Int = 0 // 그 그룹까지의 개수

while X > count {
    groupNumber += 1
    count += groupNumber
}

var gap: Int = count - X
var top: Int = 0
var bottom: Int = 0

if groupNumber % 2 == 0 { // 그룹번호가 짝수라면,
    top = groupNumber - gap
    bottom = gap + 1
}
else { // 그룹번호가 홀수라면,
    top = gap + 1
    bottom = groupNumber - gap
}

print("\(top)/\(bottom)")

 


 

반응형