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

블로그 메뉴

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

공지사항

인기 글

최근 댓글

최근 글

태그

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

티스토리

hELLO · Designed By 정상우.
Dev.YoungKyu
카테고리 없음

[백준] BOJ-15649 N과 M (1)

[백준] BOJ-15649 N과 M (1)
카테고리 없음

[백준] BOJ-15649 N과 M (1)

2022. 11. 29. 22:54

문제

이미지를 클릭하면 문제 페이지로 연결됩니다.

N과 M을 입력받아 nPm 의 순열을 구하는 문제였다.

풀이


  
import Foundation
let nm = readLine()!.split(separator: " ").map { Int($0)! }
let n = nm.first!
let m = nm.last!
let nums = Array(1...n) // [1, 2, ..., n]
/// nPr
func permutation(n elements: [Int], r: Int) -> [[Int]] {
var result = [[Int]]()
var visited = [Bool](repeating: false, count: n)
func permu(_ temp: [Int]) {
if temp.count == r {
result.append(temp)
return
}
for i in 0..<elements.count {
if !visited[i] { // 중복 없도록 방문한 요소는 건너뛰기
visited[i] = true
permu(temp + [elements[i]])
visited[i] = false
}
}
}
permu([])
return result
}
let result = permutation(n: nums, r: m)
result.forEach {
$0.forEach { print($0, terminator: " ") }
print("")
}

재귀를 이용해 permutation 을 구현하여 풀긴했는데 남한테 설명하는게 너무 어렵다ㅜㅜ 재귀 복잡해

저작자표시 (새창열림)
  • 문제
  • 풀이
Dev.YoungKyu
Dev.YoungKyu
iOS를 공부하고 있습니다

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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