Dev.YoungKyu
YoungKyu's Devlog
전체 방문자
오늘
어제
  • 분류 전체보기
    • 부스트캠프
    • iOS
    • visionOS
    • Backend
    • 알고리즘
    • CS
    • Git
    • Python
    • 끄적끄적

블로그 메뉴

  • 홈
  • 🌝 티스토리 홈
  • ⭐️ 깃허브
  • 태그

공지사항

인기 글

최근 댓글

최근 글

태그

  • AVAudioSession
  • Python
  • 소프트웨어 테스트
  • constraint
  • swift
  • 오블완
  • Optional
  • MVC
  • 모듈화
  • authenticationinterceptor
  • 소프트웨어 공학
  • CS
  • alamofire
  • guard
  • 티스토리챌린지
  • Swift5.7
  • Concurrency
  • if let
  • image
  • ImageResource
  • boj
  • AutoLayout
  • 백준
  • SwiftUI
  • Git
  • 소프트웨어공학
  • 알고리즘
  • jekyll
  • 부스트캠프
  • ios

티스토리

hELLO · Designed By 정상우.
Dev.YoungKyu
알고리즘

[백준 BOJ] BOJ-1059 좋은 구간

알고리즘

[백준 BOJ] BOJ-1059 좋은 구간

2022. 9. 18. 20:30

#1059 좋은 구간

 

문제 정리

imageimage

 

풀이


  
import Foundation
let l = Int(readLine()!)!
let s = Set(readLine()!.split(separator: " ").map { Int($0)! })
let n = Int(readLine()!)!
var min = 1
var max = 1000
// 0. n이 집합 S에 속하는 경우
if s.contains(n) {
min = n
max = n
}
else {
// 0. n-1 방향으로 진행하면서 집합 S와 일치하는 값이 있으면 직후의 값을 min에 저장
for i in stride(from: n, through: 1, by: -1) {
if s.contains(i) {
min = i+1
break
}
}
// 0. n+1 방향으로 진행하면서 집합 S와 일치하는 값이 있으면 직전의 값을 max에 저장
for i in stride(from: n, through: 1000, by: 1) {
if s.contains(i) {
max = i-1
break
}
}
}
// 1. 범위 생성
let arr = Array(min...max)
var output = 0
// 2. A < B인 경우의 수
for i in 0..<arr.endIndex {
for j in i+1..<arr.endIndex {
let a = arr[i]
let b = arr[j]
// 3. Range(A...B)에 n 이 포함되는 경우 count 증가
if Range(a...b).contains(n) { output += 1 }
}
}
print(output)

예제 입력 2 에 대한 예시

  • 집합 S에서 n 으로부터 제일 가까운 원소를 찾아 범위를 만든다. -> 8, 13 -> 범위 : 9 ~ 12
  • A < B 인 경우의 수를 찾아낸다. -> (9,10), (9,11), (9,12), (10,11), (10,12), (11,12)
  • 각 경우에 대해 n이 포함되는 경우 count를 증가시킨다. -> (9~10).contains(n) = true

image

 

풀고나서 알게된 것

문제를 제대로 읽지않고 무작정 풀려는 습관이 있어 문제를 이해하는데 시간이 좀 걸렸다ㅜ

앞으론 문제를 이해한 다음 풀이에 돌입해보장

저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

[백준 BOJ] BOJ-8393 합  (0) 2022.09.18
[백준 BOJ] BOJ-7568 덩치  (0) 2022.09.18
[백준 BOJ] BOJ-1920 수 찾기  (1) 2022.09.18
[백준 BOJ] BOJ-1010 다리 놓기  (0) 2022.09.18
[백준 BOJ] BOJ-1008 A/B  (0) 2022.09.18
  •  
  • 문제 정리
  •  
  • 풀이
  •  
  • 풀고나서 알게된 것
'알고리즘' 카테고리의 다른 글
  • [백준 BOJ] BOJ-7568 덩치
  • [백준 BOJ] BOJ-1920 수 찾기
  • [백준 BOJ] BOJ-1010 다리 놓기
  • [백준 BOJ] BOJ-1008 A/B
Dev.YoungKyu
Dev.YoungKyu
iOS를 공부하고 있습니다
YoungKyu's DevlogiOS를 공부하고 있습니다

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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