[Swift]BOJ-1026

BOJ-1026, 보물

문제 📑

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

 

문제 정리 ▾

BOJ-1026

  • A,B의 길이를 정할 N의 정수를 입력 받는다.
  • A와 B의 원소를 각각 곱해서 누적시킨 S를 출력시킨다.
    • 단, S는 모든 케이스 중 최솟값으로 출력을 시켜야한다.
    • A는 최솟값과 B는 최댓값을 곱하면 된다.
    • B의 배열은 재정렬이 되어선 안된다.

 

접근 🚶🏻

나의 생각 ▾

  • 처음에 문제를 끝까지 안읽고 쉽다는 생각에 A와 B 배열 모두 재정렬하여 계산했다.
  • 당연히 틀렸고, 문제에선 B배열은 재정렬해선 안된다는 문장에 B배열을 재정렬시킨 다른 배열변수를 만들겠다는 꼼수 😏

 

내 코드 ▾

func solution() {
    let count = Int(readLine()!)!
    let a = readLine()!.split(separator: " ").map({Int(String($0))!}).sorted { $0 < $1 }
    let b = readLine()!.split(separator: " ").map({Int(String($0))!})
    let b_srt = b.sorted { $0 > $1 }
    var result: Int = 0
    
    for i in 0..<count {
        result += a[i] * b_srt[i]
    }
    
    print(result)
}
solution()
  • 딱히 어려운 구문은 없어서 따로 리뷰는 패스하겠다.

 

Additional 📂

  • 오랜만에 알고리즘 공부를 다시 시작한만큼 기본적인 문법을 많이 까먹었다.
  • 하루에 한문제를 못풀더라도 매일 시도를 해야겠다는 생각이 들었다.

'Algorithm.zip' 카테고리의 다른 글

[Swift]BOJ-16953  (0) 2022.04.06
[Swift]BOJ-1946  (0) 2022.04.06
[Swift]BOJ-11726  (0) 2022.02.07
[Swift]BOJ-17298  (0) 2022.02.05
[Swift]BOJ-10799  (0) 2022.02.04