프로그래밍 문제 하나
2021.05.13 00:25
프로그래밍 문제
~~~~~~~~~~~~~~~~~~~~~~~~~~~
0과 1로만 이루어져 있으며, 0의 개수와 1의 개수가 동일한 문자열 S가 주어진다. 당신은 S에 다음과 같은 작업을 여러 번 수행할 수 있다:
S의 길이 2k인 연속한 부분문자열이 앞 k개 문자가 모두 동일하고, 또한 뒤 k개 문자가 서로 동일하며, 0과 1을 모두 포함할 때, 그 부분문자열을 제거할 수 있다.
예를 들어, S = “0111000011”인 경우, S의 2번째 문자부터 7번째 문자까지인 “111000”을 제거하는 것이 가능하다. 이 작업 후에는 제거된 부분의 앞부분과 뒷부분이 연결되어 S = “0011”이 된다. 그러면 이제 한 번의 작업을 통해 “0011”을 제거할 수 있으므로 초기 S = “0111000011”는 두 번의 작업을 통해 빈 문자열로 만들 수 있다.
여러분의 목표는 최소 횟수의 작업을 통해 S를 빈 문자열로 만드는 것이다. 최소 횟수의 작업으로 S를 빈 문자열로 만드는 과정을 구하여라.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
댓글 [3]
-
오호라7 2021.05.13 02:30
-
메리아 2021.05.13 14:11
예시를 보니 문제가 지시하는 바가 뭔지 알겠군요.
근데 쉬운거 같으면서도 좀 어렵네요.
압축알고리즘 연습 일지도...
-
scrce 2021.05.13 15:49
1. a=0으로 초기화
2. For 문으로 돌린다.
S에 문자열 111000이 있으면 삭제 후 a를 1씩 증가
없으면 S 문자열을 공백 처리 후 종료
답: 최소 횟수는 a(char)에 들어간 수
해석: For문 첫번째는 111000 삭제 후 a=a+1 (a=1이된다.)
For문 두번째에서 111000이 없으므로 S에 문자열을 공백처리 후 종료, a=a+1 (a=2가된다.)
최소 횟수는 2
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 자유 게시판 이용간 유의사항 (정치, 종교, 시사 게시물 자제) [1] | gooddew | - | - |
43036 | 늙은 놋북 번들 윈7정품 > 윈10 업글 여전히 잘되네요. [2] | Day | 424 | 03-23 |
43035 | 윈도우 98 및 윈도우 me ..... [6] | 도파니 | 830 | 03-23 |
43034 | 레인미터 날씨 [4] | Meta | 733 | 03-23 |
43033 | Dark Wallpaer 김삿갓 / 조지관 [4] | sansam | 608 | 03-23 |
43032 | 서서히.. [5] | 테츠로 | 654 | 03-23 |
43031 | 인터넷 브라우저들의 거부 [1] | [벗님] | 688 | 03-23 |
43030 | Wallpaper 야은 길재/ 회고가 [8] | sansam | 679 | 03-23 |
43029 | 허탈 하네요.. [3] | 테츠로 | 839 | 03-23 |
43028 | 양수경 - 아쉬운 이별 | 눈이 | 316 | 03-23 |
43027 | 이선희 - 추억 속을 걷네 | 눈이 | 239 | 03-23 |
43026 | 2022 카타르 월드컵 최종 예선 9·10차전 생중계 일정 [1] | asklee | 575 | 03-22 |
43025 | Santana - Dom [1] | 눈이 | 468 | 03-22 |
43024 | UltimateUser 사부님 죄송하고 감사합니다.^^* [34] | 선우 | 779 | 03-22 |
43023 | 배려와 존경이 있었으면.. [1] | 테츠로 | 575 | 03-22 |
43022 | [추천좀 해주세요!] 복구 프로그램 추천 좀 부탁드려요... [12] | 易모地뗀思 | 923 | 03-22 |
43021 | ♧ [런타임 오류 한방에 해결] - All-in-One Runtimes Colle... [18] | 易모地뗀思 | 956 | 03-22 |
43020 | 머리를 식히려다.. | 긍지버림 | 336 | 03-22 |
43019 | 디즈니 플러스와 넷플릭스 구독중인데 영상 다운로드는.... [7] | 꽃보다머찐 | 706 | 03-22 |
43018 | Parallels Toolbox for Windows [1] | Meta | 363 | 03-22 |
43017 | 인연 [6] | 간장종지646 | 734 | 03-22 |
문제가 원래 그런건지, ton3d님이 줄여 쓰느라 잘못 쓴 것인지는 알 수 없지만,
'S의 길이 2k인 연속한 부분문자열이 앞 k개 문자가 모두 동일하고, 또한 뒤 k개 문자가 서로 동일하며, ' 부분과 뒤에 예시로 든
S = “0111000011”가 서로 오류입니다.
'k개 문자가 모두 동일해야 한다'면 2k인 s문자는 00001111, 111111000000 이런식이어야 하지 않나요?
그래서 문제가 맞고 예시가 틀렸다면, 어떤 문자열이 와도 이 문제는 1번만 제거가 이루어 집니다.
설명이 잘못된듯 합니다.
오류찾기가 생활화된 프로그래머는 이런 문제를 안냅니다.