오늘은 참여한지 8일차 입니다. DAY8은 지금까지 못 풀었던 문제(1212번, 2935번)를 다시 풀어보는 날입니다.
22일 Basic 챌린지에 대한 상세한 내용은 아래 링크에서 확인할 수 있습니다.
https://developer-p.tistory.com/171
Day 8
220228 공부 일지 : 못 푼 문제를 다시 시도해서 해결했다. 다른 사람 코드를 참고하면서 배우는 점이 많은 것 같다.
백준 Swift 1212번(런타임 오류)
// MARK: - 1212번(런타임 오류)
import Foundation
let N = readLine()!.map{Double(String($0))!}
var digit: Double = 0 // 10진수
var num: Double = 0.0
for i in stride(from: N.count-1, through:0, by: -1) { // 8진수 -> 10진수
digit += N[i] * pow(8.0, num)
num += 1.0 // 8^0, 8^1, 8^2, ...
}
let answer = String(Int(digit), radix: 2) // 10진수 -> 2진수
print(answer)
백준 Swift 1212번
(참고 : https://www.acmicpc.net/source/31035491)
// MARK: - 1212번 ( 참고 : https://www.acmicpc.net/source/31035491)
let N = readLine()!.map{Int(String($0))!}
var result = ""
let arr = ["000", "001", "010", "011", "100", "101", "110", "111"]
for num in N {
result += arr[num]
}
while result.first == "0" {
result.removeFirst()
}
if result.isEmpty {
result = "0"
print(result)
}
else {
print(result)
}
백준 Swift 2935번
// MARK: - 2935번
let A = readLine()!.count
let oper = readLine()!
let B = readLine()!.count
var result = "1"
if oper == "*" { // *일 때,
result += String(repeating: "0", count: A - 1) + String(repeating: "0", count: B - 1)
}
else { // +일 때,
if A > B {
result += String(repeating: "0", count: A - B - 1) + "1" + String(repeating: "0", count: B - 1)
}
else if A < B {
result += String(repeating: "0", count: B - A - 1) + "1" + String(repeating: "0", count: A - 1)
}
else {
result = "2" + String(repeating: "0", count: A - 1)
}
}
print(result)
DAY8 인증완료
반응형
최근댓글