hy01n   2년 전

문제에서 입력과 출력을 바꿔서 산출해야한다면

어떻게 코드를 짜야 할까요?


예를 들어 입력으로

((110(0101))(0010)1(0001)

이 들어올때,
출력 값이

11110000
11110000
00011100
00011100
11110000
11110000
11110011
11110011

로 나오게 하려면 어떻게 코드를 짤 수 있을까요?

6시간 짜다가 도저희 모르겠어서 질문드립니다.

lcr7324   2년 전

우선 입력은 괄호 문자열과 함께 이미지의 크기 n*n이 주어져야 합니다. (n은 2의 거듭제곱 꼴)

(왜 필요한지 간단하게 생각하면, 크기가 안 주어진다면 '0'이 입력으로 주어졌을 때 어떻게 해야 할까요?)

그러면 다음 로직으로 해결될 듯합니다.

0) 채우고자 하는 사각형의 크기와 위치를 초기화 합니다. (한 변의 길이 n, 왼쪽 위 = (0, 0))

문자를 하나씩 읽으면서,

1) '0' 또는 '1'이면 해당하는 사각형을 채웁니다. 그 후 다음 사각형의 위치로 이동합니다.

2) '('이면 사각형의 크기를 줄입니다.

3) ')'이면 사각형의 크기를 키웁니다.

jeuk23   2년 전

덧붙여서 최대로 괄호가 가장 깊게 중첩되었을 때 m번 중첩되었다고 가정하고 복원 후 임의의 N>=m에 대해서 닮음을 이용해 복원해도 될 듯합니다

댓글을 작성하려면 로그인해야 합니다.