애플아카데미를 다닐 때 같은 팀원이 취업을 위한 코테가 아니라 실버2정도까지는 기본적인 앱을 만들면서 발생하는 task를 해결하는데 알고리즘이 필요할수있다라고 말했던게 기억나서 차근차근 알고리즘 공부를 시작했다
나는 뭔가를 시작할때 여러블로그에서 다른사람들이 어떻게 한지를 보고 나만의 방식을 찾는데 우선
https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기
이분의 블로그를 보고 커리큘럼?을 따라가보기로 했다
우선 준비물은
Chrome에서 extension중에 백준에서 채점을 하면 내가 연동한 레포지토리에 저절로 commit을 올려주는게 있길래 다운받아서 설치해줬다 그리고나서 알고리즘을 위한 xcode기본세팅을 해줬다
그리고 차근차근 풀기시작했다. 아마 TIL에서 코딩테스트관련 글을 작성할때는 내가 푼 문제와 적은 풀이를 올릴거같다
문제 설명
오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.
입력
첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
출력
첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.
import Foundation
let input = readLine()!.components(separatedBy: " ").map { Int($0)! }
func checkDate(month: Int, day: Int) -> String {
let weekDay: [String] = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
return weekDay[((getTotalDate(month: month) + day - 1) % weekDay.count)]
}
private func getTotalDate(month: Int) -> Int {
let monthDate: [Int] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
return month == 1 ? 0 : monthDate[0..<month - 1].reduce(0, +)
}
print(checkDate(month: input[0], day: input[1]))
문제 설명
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
입력
첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.
출력
출력형식과 같게 N*1부터 N*9까지 출력한다.
let input = Int(readLine()!)!
for i in 1...9 {
print("\(input) * \(i) = \(input*i)")
}
문제 설명
자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
let input = Int(readLine()!)!
for i in 1...input {
print(i)
}
문제 설명
자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
let input = Int(readLine()!)!
for i in stride(from: input, through: 1, by: -1) {
print(i)
}
문제 설명
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
출력
1부터 n까지 합을 출력한다.
import Foundation
let input = Int(readLine()!)!
var sum = 0
for i in 1...input {
sum += i
}
print(sum)