https://www.acmicpc.net/problem/4592
4592번: 중복을 없애자
Al의 초콜릿 망고 회사는 방문자들이 2d 단지에 얼마나 많은 초콜릿 망고가 있는지 추측할 수 있는 웹 사이트를 갖고 있다. 방문자들은 1부터 99까지의 수를 추측한 후 "제출" 버튼을 누르는데, 안
www.acmicpc.net
c++로 백준 4592번 문제를 풀어보겠다.
문제
Al의 초콜릿 망고 회사는 방문자들이 2d 단지에 얼마나 많은 초콜릿 망고가 있는지 추측할 수 있는 웹 사이트를 갖고 있다. 방문자들은 1부터 99까지의 수를 추측한 후 "제출" 버튼을 누르는데, 안타깝게도 서버로부터 응답시간이 종종 길어져 방문자들이 이성을 잃은 나머지 "제출"을 연타하는 사태가 발생한다. 이게 우리가 해결해야 할 문제다.
ACM의 직원을 도와 연타된 중복을 걸러보자.
입력
각 줄마다 처음으로 정수 N(0 < N ≤ 25)이 주어진다. 그 다음 N개에 걸쳐 1부터 99 사이의 수가 주어진다.
마지막 줄에 입력의 끝을 알리는 0이 주어진다.
출력
각 케이스마다 한 줄씩 연속하는 중복을 제거한 원래의 제출 상태를 출력한다.
각 줄의 마지막에는 한 칸을 띄고 '$' 표시가 붙는다.
예제 입력 1 복사
5 1 22 22 22 3
4 98 76 20 76
6 19 19 35 86 86 86
1 7
0
예제 출력 1 복사
1 22 3 $
98 76 20 76 $
19 35 86 $
7 $
<문제 풀이>
1. while 반복문을 통해 n이 0이 입력될 때까지 주어진 문제를 해결한다.
- while 반복문 코드 내용 -
n을 입력받는다.
입력받은 n이 0이라면 반복문을 종료한다.
숫자 n개를 더 입력받아 배열에 저장한다.
배열에 저장된 숫자들 중 서로 이웃한 숫자들끼리 중복되는 숫자가 있다면 둘 중 앞의 수를 0으로 바꾼다.
0을 제외하고 배열에 저장된 숫자를 하나씩 출력한다.
모두 출력되었다면 마지막으로 '$'를 출력하고 줄을 건너띈다.
다시 while문의 처음으로 돌아간다.
코드는 다음과 같다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 1316번 : 그룹 단어 체커, c++ (0) | 2022.03.06 |
---|---|
[백준 알고리즘] 1269번 : 대칭 차집합, c++ (0) | 2022.03.05 |
[백준 알고리즘] 11816번 : 8진수, 10진수, 16진수, c++ (0) | 2022.03.05 |
[백준 알고리즘] 10801번 : 카드게임, c++ (0) | 2022.03.04 |
[백준 알고리즘] 9243번 : 파일 완전 삭제, c++ (0) | 2022.03.04 |