Simple&Natural

프로그래머스 Winter/Summer Coding 종이접기 문제 본문

코딩테스트 풀이/프로그래머스

프로그래머스 Winter/Summer Coding 종이접기 문제

Essense 2020. 5. 29. 21:04
728x90

풀이과정)

 

종이가 접히는 모서리의 모양을 예측하는 게 문제의 핵심이다.

종이를 접어가며 예측하지 말고 종이를 펼쳐가며 예측하면 좀 더 쉽게 답을 구할 수 있다.

 

펼쳤을 때의 접면은 무조건 아래로 볼록하므로 0이 되고

펼친 반대쪽은 원래의 면을 반대로 뒤집어주면 된다.

이걸 반복해주면 답이 나온다.

 

 

 

 

사용언어 : Kotlin

 

소스코드)

 

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
fun solution(n: Int): IntArray {
    var answer = intArrayOf()
 
    for (count in 1..n) {
        answer = answer.plus(0)
 
        if (answer.size>1) {
            answer = answer.plus(
                answer.slice(0 until answer.size-1).reversed().toIntArray().apply {
                    this.forEachIndexed { index, item ->
                        if (item == 0) {
                            this[index] = 1
                        }
                        else {
                            this[index] = 0
                        }
                    }
                }
            )
        }
 
    }
 
    return answer
}
cs
728x90