본문 바로가기
ETC./기타

기타) Xcode 프로젝트 없이 백준 문제 풀기

by 후르륵짭짭 2020. 12. 30.
728x90
반응형

안녕하세요 후르륵짭짭 입니다.

이번에는 무거운 Xcode 프로젝트를 실행시키지 않고 백준 문제를 푸는 방법에 대해 설명하려고 합니다.

그 동안 알고리즘 문제는 프로그래머스에서 주로 풀었는데, 사실 백준이 문제가 더 많아서 여기서 풀면 좋다고 많이 생각했지만,,,,

매번 프로젝트 실행하고 그 실행 기다리고 이러면,,, 사실 엄청나게 많은 용량을 차지하기도 하고 느리기도 하고 해서

안 풀고 다른 것을 풀었습니다.

하지만 야매로 하는 방법을 알았습니다.

쫌 귀찮은 구석은 있습니다.

 

** 해결 방법 **

터미널로 저장하고 싶은 위치로 이동 합니다.

cd /Volumes/T7/Xcode_TestProj/A_BackJun 

그리고 touch를 사용해서 swift 파일을 생성해줍니다.

touch 10833.swift

(저는 이 문제를 풀었고 파일이름을 백준 번호로 했습니다.www.acmicpc.net/problem/10833)

 

10833번: 사과

경상북도 특산품인 사과를 학생들에게 나눠주기 위해 여러 학교에 사과를 배정하였다. 배정된 사과 개수는 학교마다 다를 수 있고, 학생 수도 학교마다 다를 수 있다. 각 학교에서는 배정된 사

www.acmicpc.net

그리고 swift 파일을 xcode에서 엽니다.

open 10833.swift

하지만,,, 여기서 문제는 그냥 swift 파일로 열 경우에는 AutoComplete이 되지 않습니다..

그래서 PalyGround 파일을 임시로 하나 만들어주고!

거기서 임시적으로 코딩을 해줍니다.

import UIKit

typealias table = (school : Int , apple : Int)

var inputs : [table] = [
    
    table(24,52),
    table(13,22),
    table(5,53),
    table(23,10),
    table(7,70)

]

inputs = [
    
    table(10,20),
    table(5,5),
    table(1,13)

]


inputs = []

//Input In Here
//
//let N = Int(readLine()!)!
//for _ in 0..<N{
//    let input = readLine()!.components(separatedBy: " ").map { (ele) -> Int in
//        return Int(ele)!
//    }
//    
//    inputs.append(table(input[0] , input[1]))
//}

//Solution In Here
var answer = 0

for element in inputs{
    
    if element.apple < element.school{
        answer += element.apple
    }
    else{
        answer +=  element.apple - (element.apple / element.school) * element.school
    }
    
}

print(answer)

여기서 봐야할 점은 PlayGround에서는 readLine()이 작동하지 않기 때문에,

위에 처럼 배열로 임시적으로 값을 생성해줍니다.

문제를 다 풀었다면

위에 있는 저 코드를 복사해서 우리가 생성했던 Swift 파일로 복사 붙여넣기 합니다.

그런 다음에 아래 코드를 해주면 입력을 받을 수도 있고 출력도 됩니다!

swift 10833.swift

 

백준에는 문제를 빨리 풀기 보다는 입력 코드도 작성해야한다는 불편함이 있기 땜에 

여러 문제를 접하는 용도로 사용해야겠습니다.

Swift에서는,,,, 그럼 모두 즐코하세요!

 

참고 사이트 : 

mahmudahsan.medium.com/running-and-compiling-swift-code-in-terminal-237ee4087a9c

 

Running and Compiling Swift Code in Terminal

Sometimes its more convenient to run swift code in terminal. Specially when I implement data structure or test any algorithm, I like to…

mahmudahsan.medium.com

 

728x90
반응형

댓글