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
- 막내의막무가내 알고리즘
- 막내의 막무가내 알고리즘
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 안드로이드
- 부스트코스에이스
- 막내의막무가내 코틀린 안드로이드
- 안드로이드 Sunflower 스터디
- 안드로이드
- 프로그래머스 알고리즘
- 막내의막무가내 코틀린
- 막내의막무가내 프로그래밍
- 막무가내
- 막내의막무가내 플러터
- 프래그먼트
- 막내의막무가내 안드로이드 에러 해결
- flutter network call
- 막내의막무가내 rxjava
- 막내의막무가내
- 막내의막무가내 플러터 flutter
- 막내의 막무가내
- 막내의막무가내 일상
- 주택가 잠실새내
- Fragment
- 부스트코스
- 2022년 6월 일상
- 주엽역 생활맥주
- 막내의막무가내 목표 및 회고
- 안드로이드 sunflower
- 막내의막무가내 SQL
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[알고리즘] 백준 2661 좋은수열 -백트래킹- 코틀린 본문
728x90
https://www.acmicpc.net/problem/2661
2661번: 좋은수열
첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다.
www.acmicpc.net
백준 2661 좋은수열이라는 백트래킹 유형 문제를 풀어봤습니다. ㅎㅎ
인접한 두 개의 부분 수열이 동일한게 없는게 좋은수열이며 이를 만족하는 가장 작은 수를 구하는 문제였습니다.
가장 중요한 부분은 check() 함수로 끝에서부터 1,2,3... 개로 양쪽으로 나눠 동일한 부분수열을 가졌는지 체크해줍니다.
풀이는 다음과 같습니다.
[Kotlin]
import java.util.*
import kotlin.system.exitProcess
lateinit var arr: IntArray
var n: Int = 0
fun main(args: Array<String>) {
val sc = Scanner(System.`in`)
n = sc.nextInt()
arr = IntArray(n)
dfs(0, "")
}
fun dfs(depth: Int, num: String) {
if (depth == n) {
println(num)
exitProcess(0) // 가장 작은수 발견 종료
}
for (i in 1..3) {
if (check(num + i)) {
dfs(depth+1, num + i)
}
}
}
// 좋은 수열인지 검사
fun check(num: String): Boolean {
for (i in 1..num.length / 2) {
val left = num.substring(num.length - i * 2, num.length - i)
val right = num.substring(num.length - i, num.length)
if (left == right) return false
}
return true
}
https://github.com/mtjin/algorithm_practice/commit/75f71f413759e0c219ca9c5300d6c0f0ec2ab50d
백준 2661 풀이 · mtjin/algorithm_practice@75f71f4
github.com

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!!
728x90
'알고리즘 > DFS, BFS, 시뮬, 백트래킹' 카테고리의 다른 글
[알고리즘] 프로그래머스 모의고사 -완전탐색- 자바, 코틀린 (0) | 2021.07.05 |
---|---|
[알고리즘] 백준 2636 치즈 -BFS- 코틀린 (0) | 2021.07.03 |
[알고리즘] 백준 15664 N과 M(10) -백트래킹- (0) | 2021.06.20 |
[알고리즘] 백준 15665 N과 M(11) -백트래킹- 자바 (0) | 2021.06.16 |
[알고리즘] 백준 2529 부등호 -백트래킹- 자바 코틀린 (0) | 2021.05.11 |
Comments