250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내 코틀린
- 막내의막무가내 SQL
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 프로그래밍
- Fragment
- 막내의막무가내 알고리즘
- 안드로이드 sunflower
- 프래그먼트
- 막무가내
- 부스트코스
- 막내의막무가내 안드로이드
- 막내의 막무가내 알고리즘
- 부스트코스에이스
- 프로그래머스 알고리즘
- 막내의막무가내 플러터
- 주엽역 생활맥주
- 안드로이드 Sunflower 스터디
- 막내의막무가내 플러터 flutter
- 막내의막무가내
- 주택가 잠실새내
- 막내의막무가내 rxjava
- 2022년 6월 일상
- 막내의막무가내 일상
- 막내의 막무가내
- 막내의막무가내 목표 및 회고
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 안드로이드 코틀린
- flutter network call
- 안드로이드
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[알고리즘] 백준 10974 모든 순열 -백트래킹- 자바, 코틀린 본문
728x90
https://www.acmicpc.net/problem/10974
10974번: 모든 순열
N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.
www.acmicpc.net
오랜만에 백트래킹과 자바 감도 익힐겸 백트래킹 유형에서 기본문제를 풀어봤습니다. ㅎㅎ
요즘 코볼만 쓰고 있는데 자바 정말 오랜만에 쓰네요.... 그립다 자바야 ㅜㅜㅜㅜㅜㅜㅜㅜ
풀이는 다음과 같습니다.
[Java]
import java.util.Scanner;
public class Main {
private static int N;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
boolean[] isVisited = new boolean[N+1];
dfs(0, isVisited, new int[N]);
}
private static void dfs(int depth, boolean[] isVisited, int[] nums) {
if (depth == N) {
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
return;
}
for (int i = 1; i <= N; i++) {
if (!isVisited[i]) {
isVisited[i] = true;
nums[depth] = i;
dfs(depth + 1, isVisited, nums);
isVisited[i] = false;
}
}
}
}
[Kotlin]
import java.util.*
private var N = 0
fun main(args: Array<String>) {
val sc = Scanner(System.`in`)
N = sc.nextInt()
val isVisited = BooleanArray(N + 1)
dfs(0, isVisited, IntArray(N))
}
private fun dfs(depth: Int, isVisited: BooleanArray, nums: IntArray) {
if (depth == N) {
for (i in nums.indices) {
print(nums[i].toString() + " ")
}
println()
return
}
for (i in 1..N) {
if (!isVisited[i]) {
isVisited[i] = true
nums[depth] = i
dfs(depth + 1, isVisited, nums)
isVisited[i] = false
}
}
}

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!
728x90
'알고리즘 > DFS, BFS, 시뮬, 백트래킹' 카테고리의 다른 글
[알고리즘] 백준 16922 로마 숫자 만들기 -백트래킹- 자바, 코틀린 (0) | 2022.04.30 |
---|---|
[알고리즘] 백준 15658 연산자 끼워넣기 (2) -백트래킹- 자바, 코틀린 (1) | 2022.03.09 |
[알고리즘] 백준 15656 N과 M (7) -백트래킹- 자바 (2) | 2021.11.22 |
[알고리즘] 프로그래머스 가장 큰 정사각형 찾기 -BFS, DP- 자바 (0) | 2021.08.10 |
[알고리즘] 백준 1405 미친 로봇 -DFS, 완전탐색- 자바 코틀린 (0) | 2021.08.09 |
Comments