[Algorithm] 백준 - 27172번 수 나누기 게임 (Swift)

2024. 6. 18. 08:11· → Problems
목차
  1. 문제 소개
  2. 문제 풀이

문제 소개

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

약수면 +1 나누어 떨어졌다면 -1 점을 갖게 되는 게임에서 결과를 출력하는 문제이다.

문제 풀이

이중 for 문으로 풀게 된다면 시간초과가 나게 된다. 따라서 다른 방법으로 풀어야 했다. 우선 길이가 1000001 인 nums 배열을 만들고, 어떠한 수가 등장했는지를 판별한다. 그리고 주어진 숫자의 배수를 판별하여 등장했다면 주어진 숫자에 +1 을 해주고 배수의 숫자에는 -1 을 해주면 된다.

import Foundation

let n = Int(readLine()!)!
let input = readLine()!.split(separator: " ").map { Int($0)! }
var nums = Array(repeating: false, count: 1_000_001)
var score = [Int: Int]()

for element in input {
    nums[element] = true
    score[element] = 0
}

for i in input.indices {
    let num = input[i]
    var j = 2
    
    while num * j <= 1000000 {
        if nums[num * j] {
            score[num, default: 0] += 1
            score[num * j, default: 0] -= 1
        }
        
        j += 1
    }
}

for element in input {
    print(score[element, default: 0], terminator: " ")
}

'→ Problems' 카테고리의 다른 글

[Algorithm] 백준 - 1647번 도시 분할 계획 (Swift)  (0) 2024.06.19
[Algorithm] 백준 - 1197번 최소 스패닝 트리 (Swift)  (1) 2024.06.18
[Algorithm] 백준 - 2467번 용액 (Swift)  (0) 2024.06.17
[Algorithm] 백준 - 2166번 다각형의 면적 (Swift) (CCW 알고리즘)  (0) 2024.06.17
[Algorithm] 백준 - 3055번 탈출 (Swift)  (0) 2024.06.15
  1. 문제 소개
  2. 문제 풀이
'→ Problems' 카테고리의 다른 글
  • [Algorithm] 백준 - 1647번 도시 분할 계획 (Swift)
  • [Algorithm] 백준 - 1197번 최소 스패닝 트리 (Swift)
  • [Algorithm] 백준 - 2467번 용액 (Swift)
  • [Algorithm] 백준 - 2166번 다각형의 면적 (Swift) (CCW 알고리즘)
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[Algorithm] 백준 - 27172번 수 나누기 게임 (Swift)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.