오늘은 참여한지 8일차 입니다. DAY8은 지금까지 못 풀었던 문제(1212번, 2935번)를 다시 풀어보는 날입니다.

22일 Basic 챌린지에 대한 상세한 내용은 아래 링크에서 확인할 수 있습니다.

 

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

 

[22일 Basic 챌린지 참여] 알고리즘 DAY1

22 Basic Challenge Algorithm https://softsquared.notion.site/Algorithm-5328fab28619430dae2c782d4db6a556 Algorithm 베이직 챌린지 챌린지 대상 : 코딩 테스트 준비해야하는데, 한 번도 해본적은 없어. 일단..

developer-p.tistory.com

 


Day 8

220228 공부 일지 : 못 푼 문제를 다시 시도해서 해결했다. 다른 사람 코드를 참고하면서 배우는 점이 많은 것 같다.

 

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 인증완료

 

DAY8 인증완료

반응형