좌표 정렬하기 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 85183 40237 31047 48.111%

문제

2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

출력

첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.

예제 입력 1 복사

5
3 4
1 1
1 -1
2 2
3 3

예제 출력 1 복사

1 -1
1 1
2 2
3 3
3 4

출처

알고리즘 분류

코드

import Foundation

var N = Int(readLine()!)!
var arr = [(Int, Int)] ()
for _ in 0 ..< N{
    let input = readLine()!.split(separator: " ").map{Int($0)}
    arr.append((input[0]!, input[1]!))
}

arr.sort(by: {
    $0.0 == $1.0 ? $0.1 < $1.1 : $0.0 < $1.0
})

for i in 0 ..< N{
    print("\(arr[i].0) \(arr[i].1)")
}

 

도움주신분!!

https://sapjilkingios.tistory.com/entry/Swift-%EB%B0%B1%EC%A4%80-11650%EB%B2%88-%EC%A2%8C%ED%91%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0

 

Swift) 백준 11650번 (좌표 정렬하기)

요구능력 : 좌표기능과 정렬함수를 활용할줄 아느냐 코드설명 : Swift에 내장된 정렬함수를 사용했다. Swift의 강력한 기능 중 하나인 좌표형식으로 저장할 수 있는기능.. 난 까먹고 있었다. sort함

sapjilkingios.tistory.com

 

'iOS > 백준' 카테고리의 다른 글

Swift 백준 10816번) 숫자 카드 2 (삽질..)  (2) 2022.08.31
Swift 백준 2164번) 카드 2  (0) 2022.08.30
Swift 백준 11050번) 이항계수 1  (0) 2022.08.16
Swift 백준 10866번) 덱  (0) 2022.08.15
Swift 백준 10854번) 큐  (0) 2022.08.15

이항 계수 1 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 37720 24367 21036 64.549%

문제

자연수 N과 정수 K가 주어졌을 때 이항 계수 (NK)를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K  N)

출력

(NK)를 출력한다.

예제 입력 1 복사

5 2

예제 출력 1 복사

10

출처

알고리즘 분류

코드

func factorial(_ a : Int) -> Int {
    var num = 1
    for i in 2 ..< a+1{
        num *= i
    }
    return num
}

let input = readLine()!.split(separator: " ").map{Int($0)!}
var N = input[0]
var K = input[1]

if K == 0 || N == K{
    print(1)
}else{
    let res = factorial(N) / (factorial(N-K)*factorial(K))
    print(res)
}

'iOS > 백준' 카테고리의 다른 글

Swift 백준 2164번) 카드 2  (0) 2022.08.30
Swift 백준 11650번) 좌표 정렬하기  (0) 2022.08.22
Swift 백준 10866번) 덱  (0) 2022.08.15
Swift 백준 10854번) 큐  (0) 2022.08.15
Swift 백준 1920번) 수 찾기  (0) 2022.08.10

 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초 (추가 시간 없음) 256 MB 50042 27372 23130 56.172%

문제

정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여덟 가지이다.

  • push_front X: 정수 X를 덱의 앞에 넣는다.
  • push_back X: 정수 X를 덱의 뒤에 넣는다.
  • pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 덱에 들어있는 정수의 개수를 출력한다.
  • empty: 덱이 비어있으면 1을, 아니면 0을 출력한다.
  • front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

예제 입력 1 복사

15
push_back 1
push_front 2
front
back
size
empty
pop_front
pop_back
pop_front
size
empty
pop_back
push_front 3
empty
front

예제 출력 1 복사

2
1
2
0
2
1
-1
0
1
-1
0
3

예제 입력 2 복사

22
front
back
pop_front
pop_back
push_front 1
front
pop_back
push_back 2
back
pop_front
push_front 10
push_front 333
front
back
pop_back
pop_back
push_back 20
push_back 1234
front
back
pop_back
pop_back

예제 출력 2 복사

-1
-1
-1
-1
1
1
2
2
333
10
10
333
20
1234
1234
20

출처

알고리즘 분류

 

코드

import Foundation

public struct Dequeue<T>{
    private var elements = [T]()
    public init() {}
    
    public mutating func push_front(_ element: T){
        self.elements.insert(element, at: 0)
    }
    
    public mutating func push_back(_ element: T){
        self.elements.append(element)
    }
    
    public mutating func pop_front() -> T? {
        if self.elements.isEmpty{
            return ( -1 as! T)
        }else{
            let pop = self.elements.first
            self.elements.remove(at: 0)
            return pop
        }
    }
    
    public mutating func pop_back() -> T? {
        if self.elements.isEmpty{
            return ( -1 as! T)
        }else{
            let pop = self.elements.last
            let size = (self.elements.count) - 1
            self.elements.remove(at: size)
            return pop
        }
    }
    
    public func empty() -> Bool {
        return self.elements.isEmpty
    }
    
    public var size: Int {
        return self.elements.count
    }
    
    public mutating func front() -> T? {
        if self.elements.isEmpty{
            return (-1 as! T)
        }else{
            return self.elements.first //맨앞정수
        }
    }
    public mutating func back() -> T? {
        if self.elements.isEmpty{
            return (-1 as! T)
        }else{
            return self.elements.last //맨뒤정수
        }
    }
}

var myDequeue = Dequeue<Int>()
let input = Int(readLine()!)!

for _ in 1...input {
    let a = readLine()!.split(separator: " ")
    switch String(a[0]) {
    case "push_front":
        myDequeue.push_front(Int(a[1])!)
    case "push_back":
        myDequeue.push_back(Int(a[1])!)
    case "pop_front":
        print(myDequeue.pop_front()!)
    case "pop_back":
        print(myDequeue.pop_back()!)
    case "size":
        print(myDequeue.size)
    case "empty":
        if myDequeue.empty() == false{
            print(0)
        }else{
            print(1)
        }
    case "front":
        print(myDequeue.front()!)
    case "back":
        print(myDequeue.back()!)
    default:
        break
    }
}

'iOS > 백준' 카테고리의 다른 글

Swift 백준 11650번) 좌표 정렬하기  (0) 2022.08.22
Swift 백준 11050번) 이항계수 1  (0) 2022.08.16
Swift 백준 10854번) 큐  (0) 2022.08.15
Swift 백준 1920번) 수 찾기  (0) 2022.08.10
Swift 백준 2751번) 수 정렬하기 2  (0) 2022.08.09

 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초 (추가 시간 없음) 256 MB 81808 36630 28558 49.027%

문제

정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 여섯 가지이다.

  • push X: 정수 X를 큐에 넣는 연산이다.
  • pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 큐에 들어있는 정수의 개수를 출력한다.
  • empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
  • front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

예제 입력 1 복사

15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

예제 출력 1 복사

1
2
2
0
1
2
-1
0
1
-1
0
3

출처

알고리즘 분류

 

코드

import Foundation

public struct Queue<T>{
    private var elements = [T]()
    public init() {}
    
    public mutating func push(_ element: T){
        self.elements.append(element)
    }
    
    public mutating func pop() -> T? {
        if self.elements.isEmpty{
            return ( -1 as! T)
        }else{
            let pop = self.elements.first
            self.elements.remove(at: 0)
            return pop
        }
    }
    
    public func empty() -> Bool {
        return self.elements.isEmpty
    }
    
    public var size: Int {
        return self.elements.count
    }
    
    public mutating func front() -> T? {
        if self.elements.isEmpty{
            return (-1 as! T)
        }else{
            return self.elements.first //맨앞정수
        }
    }
    public mutating func back() -> T? {
        if self.elements.isEmpty{
            return (-1 as! T)
        }else{
            return self.elements.last //맨뒤정수
        }
    }
}

var myQueue = Queue<Int>()
let input = Int(readLine()!)!

for _ in 1...input {
    let a = readLine()!.split(separator: " ")
    switch String(a[0]) {
    case "push":
        myQueue.push(Int(a[1])!)
    case "pop":
        print(myQueue.pop()!)
    case "size":
        print(myQueue.size)
    case "empty":
        if myQueue.empty() == false{
            print(0)
        }else{
            print(1)
        }
    case "front":
        print(myQueue.front()!)
    case "back":
        print(myQueue.back()!)
    default:
        break
    }
}
 
 
 

'iOS > 백준' 카테고리의 다른 글

Swift 백준 11050번) 이항계수 1  (0) 2022.08.16
Swift 백준 10866번) 덱  (0) 2022.08.15
Swift 백준 1920번) 수 찾기  (0) 2022.08.10
Swift 백준 2751번) 수 정렬하기 2  (0) 2022.08.09
Swift 백준 10989번) 수 정렬하기 3  (0) 2022.08.09

수 찾기 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 154089 45592 30312 29.849%

문제

N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

출력

M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.

예제 입력 1 복사

5
4 1 5 2 3
5
1 3 7 9 5

예제 출력 1 복사

1
1
0
0
1

출처

알고리즘 분류

 

코드

import Foundation

//N(1 ≤ N ≤ 100,000)
//M(1 ≤ M ≤ 100,000)

let N = Int(readLine()!)!
var arr_N = readLine()!.split(separator: " ").map{ Int($0)! }

let M = Int(readLine()!)!
var arr_M = readLine()!.split(separator: " ").map{ Int($0)! }

for i in 0..<N{
    let num_m = arr_M[i]
    if arr_N.contains(num_m){
        print(1)
    }else{
        print(0)
    }
}

너무 쉽다고 생각한후 이렇게 코드작성을 하니 당연히 시간 초과가 났다,,,

카테고리에 이진탐색을 발견후 코드를 바꿔줬다.

 

제출코드

import Foundation

//N(1 ≤ N ≤ 100,000)
//M(1 ≤ M ≤ 100,000)

func binarySearch(_ arr: [Int], _ target: Int) -> Int{
    var start = 0
    var end = arr.count - 1

    while start <= end {
        let mid = (start + end) / 2
            if arr_N[mid] == target {
                return 1
            }else if arr_N[mid] > target {
                end = mid - 1
            }else if arr_N[mid] < target {
                start = mid + 1
            }
        }
        return 0
}

let N = Int(readLine()!)!
var arr_N = readLine()!.split(separator: " ").map{ Int($0)! }

let M = Int(readLine()!)!
var arr_M = readLine()!.split(separator: " ").map{ Int($0)! }

arr_N.sort()

for i in 0..<M{
    print(binarySearch(arr_N, arr_M[i]))
}

'iOS > 백준' 카테고리의 다른 글

Swift 백준 10866번) 덱  (0) 2022.08.15
Swift 백준 10854번) 큐  (0) 2022.08.15
Swift 백준 2751번) 수 정렬하기 2  (0) 2022.08.09
Swift 백준 10989번) 수 정렬하기 3  (0) 2022.08.09
Swift 백준 2231번) 분해합  (0) 2022.08.08

수 정렬하기 2 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB 203223 57808 39987 30.397%

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

5
5
4
3
2
1

예제 출력 1 복사

1
2
3
4
5

출처

코드

import Foundation

let N = Int(readLine()!)!
var arr = [Int]()

for _ in 0..<N {
    arr.append(Int(readLine()!)!)
}

var resArr = arr.sorted()

for i in 0..<N{
    print(resArr[i])
}

'iOS > 백준' 카테고리의 다른 글

Swift 백준 10854번) 큐  (0) 2022.08.15
Swift 백준 1920번) 수 찾기  (0) 2022.08.10
Swift 백준 10989번) 수 정렬하기 3  (0) 2022.08.09
Swift 백준 2231번) 분해합  (0) 2022.08.08
Swift 백준 10828번) 스택  (0) 2022.08.05

수 정렬하기 3 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
5 초 (하단 참고) 8 MB (하단 참고) 181655 42018 31577 23.468%

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1 복사

10
5
2
3
1
4
2
3
5
1
7

예제 출력 1 복사

1
1
2
2
3
3
4
5
5
7

출처

  • 문제를 만든 사람: baekjoon
  • 데이터를 추가한 사람: cgiosy
  • 문제의 오타를 찾은 사람: joonas

 

코드

import Foundation

let N = Int(readLine()!)!
var arr = [Int]()

for _ in 0..<N {
    arr.append(Int(readLine()!)!)
}

var resArr = arr.sorted()

for i in 0..<N{
    print(resArr[i])
}

당연히 sort를 사용하여 푸는 문제라고 접근하여서 풀었더니 시간초과만 주구장창 나왔다...

N의 범위가 N(1 ≤ N ≤ 10,000,000) 이니 입력을 받을때와 print를 할때 시간이 오래걸리는것을 알았지만~

그다음은 생각을 못하였다..

 

https://gist.github.com/JCSooHwanCho/30be4b669321e7a135b84a1e9b075f88

 

ps할 때 입력을 한꺼번에 받기 위한 유틸리티 클래스. fread의 swift 버전.

ps할 때 입력을 한꺼번에 받기 위한 유틸리티 클래스. fread의 swift 버전. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

검색후 입력을 야무지게 받을수 있는것을 찾았고..(정말 감사합니다 ㅠㅠ)

새로운 결과 배열을 추가하지않고 String에 줄바꿈을 하며 +하기로 하였다.

 

최종코드

import Foundation

final class FileIO {
    private let buffer:[UInt8]
    private var index: Int = 0

    init(fileHandle: FileHandle = FileHandle.standardInput) {
        
        buffer = Array(try! fileHandle.readToEnd()!)+[UInt8(0)] // 인덱스 범위 넘어가는 것 방지
    }

    @inline(__always) private func read() -> UInt8 {
        defer { index += 1 }

        return buffer[index]
    }

    @inline(__always) func readInt() -> Int {
            var sum = 0
            var now = read()
            var isPositive = true

            while now == 10
                || now == 32 { now = read() } // 공백과 줄바꿈 무시
            if now == 45{ isPositive.toggle(); now = read() } // 음수 처리
            while now >= 48, now <= 57 {
                sum = sum * 10 + Int(now-48)
                now = read()
            }

            return sum * (isPositive ? 1:-1)
        }
}

let file = FileIO()

let N = file.readInt()
var arr = Array(repeating:0,count:10001)

for _ in 0 ..< N {
    let i = file.readInt()
    arr[i] += 1
}

var res = ""

for i in 1...10000 {
    res += String(repeating:"\(i)\n",count:arr[i])
}
print(res)

'iOS > 백준' 카테고리의 다른 글

Swift 백준 1920번) 수 찾기  (0) 2022.08.10
Swift 백준 2751번) 수 정렬하기 2  (0) 2022.08.09
Swift 백준 2231번) 분해합  (0) 2022.08.08
Swift 백준 10828번) 스택  (0) 2022.08.05
Swift 백준 4153번) 직각삼각형  (0) 2022.08.05

분해합 성공다국어

한국어   
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 192 MB 96282 44135 34850 45.436%

문제

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.

자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

출력

첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다.

예제 입력 1 복사

216

예제 출력 1 복사

198

코드

import Foundation

let N = Int(readLine()!)!
var res = 1

for i in 0 ..< N{
    var temp = i
    var sum = 0
    while( temp != 0){
        sum += temp % 10
        temp /= 10
    }
    if (sum + i == N){
        res = i
        break
    }
}
print(res)

출처

ICPC > Regionals > Asia Pacific > Korea > Asia Regional - Seoul 2005 B번

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

'iOS > 백준' 카테고리의 다른 글

Swift 백준 2751번) 수 정렬하기 2  (0) 2022.08.09
Swift 백준 10989번) 수 정렬하기 3  (0) 2022.08.09
Swift 백준 10828번) 스택  (0) 2022.08.05
Swift 백준 4153번) 직각삼각형  (0) 2022.08.05
Swift 백준 1259번) 팰린드롬수  (0) 2022.08.05

스택 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초 (추가 시간 없음) 256 MB 166534 58012 42344 37.323%

문제

정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 다섯 가지이다.

  • push X: 정수 X를 스택에 넣는 연산이다.
  • pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
  • size: 스택에 들어있는 정수의 개수를 출력한다.
  • empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
  • top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

예제 입력 1 복사

14
push 1
push 2
top
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
top

예제 출력 1 복사

2
2
0
2
1
-1
0
1
-1
0
3

 

코드

import Foundation

public struct Stack<T>{
    private var elements = [T]()
    public init() {}
    
    public mutating func push(_ element: T){
        self.elements.append(element)
    }
    
    public mutating func pop() -> T? {
        return self.elements.popLast()
    }
    
    public func top() -> T? {
        return self.elements.last
    }
    
    public func empty() -> Bool {
        return self.elements.isEmpty
    }
    
    public var size: Int {
        return self.elements.count
    }
}

var myStack = Stack<Int>()
var arr : [String] = []

let input = Int(readLine()!)!

for _ in 0 ..< input {
    arr.append(readLine()!)
}

for i in 0 ..< input {
    var narr = arr[i].split(separator: " ")
    if narr[0] == "top"{
        let top = myStack.top()
        if top == nil{
            print(-1)
        }else{
            print(top!)
        }
    }
    if narr[0] == "size"{
        print(myStack.size)
    }
    if narr[0] == "pop"{
        let pop = myStack.pop()
        if pop == nil {
            print(-1)
        }else{
            print(pop!)
        }
    }
    if narr[0] == "empty"{
        if myStack.empty() == true{
            print(1)
        }else{
            print(0)
        }
    }
    if narr[0] == "push"{
        let n : Int = Int(narr[1])!
        myStack.push(n)
    }
    narr.removeAll()
}

 

출처

'iOS > 백준' 카테고리의 다른 글

Swift 백준 10989번) 수 정렬하기 3  (0) 2022.08.09
Swift 백준 2231번) 분해합  (0) 2022.08.08
Swift 백준 4153번) 직각삼각형  (0) 2022.08.05
Swift 백준 1259번) 팰린드롬수  (0) 2022.08.05
Swift 백준 1181번) 단어 정렬  (0) 2022.08.05

직각삼각형 성공다국어

한국어   
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 58795 30061 26812 50.905%

문제

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

입력

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

출력

각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

예제 입력 1 복사

6 8 10
25 52 60
5 12 13
0 0 0

예제 출력 1 복사

right
wrong
right

 

코드

import Foundation

while true {
    let inputs = readLine()!.split(separator: " ").map { Double(String($0))! }.sorted()
    let a = inputs[0]
    let b = inputs[1]
    let c = inputs[2]
    
	// a, b, c가 0 0 0이면 탈출
    guard a + b + c != 0 else { break }

    if pow(a, 2) + pow(b, 2) == pow(c, 2) {
        print("right")
    } else {
        print("wrong")
    }
}

 

출처

Contest > Waterloo's local Programming Contests > 2 October, 2010 A번

'iOS > 백준' 카테고리의 다른 글

Swift 백준 2231번) 분해합  (0) 2022.08.08
Swift 백준 10828번) 스택  (0) 2022.08.05
Swift 백준 1259번) 팰린드롬수  (0) 2022.08.05
Swift 백준 1181번) 단어 정렬  (0) 2022.08.05
Swift 백준 1085번) 직사각형에서 탈출  (0) 2022.08.05

+ Recent posts