문제 풀이를 할 때 마다 계속 추가됩니다.
cmd + F 를 통해 문제번호 찾기를 추천드립니다.
풀이글이 길어짐에 따라 글을 나눕니다. 다음 글은 아래 링크에서 확인하실 수 있습니다.
https://developer-p.tistory.com/173
22.02.10 최초 게시
22.02.11 업데이트
22.02.16 업데이트
22.02.21 업데이트
22.02.22 업데이트
아래 깃허브 주소에서 백준 Swift 문제풀이를 확인하실 수 있습니다.
https://github.com/SuminPark-developer/BaekJoonPS
백준 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)")
반응형
최근댓글