2018년 6월 3일 일요일

매일프로그래밍 실리콘밸리 패키지 9번

이 문제는 매일프로그래밍에서 출제한 문제로, 모든 문제의 저작권은 매일프로그래밍에 있다는 것을 밝힙니다.

안녕하세요, 매일프로그래밍 이번주 문제입니다.
정수 배열(int array)이 주어지면 0이 아닌 정수 순서를 유지하며 모든 0을 배열 오른쪽 끝으로 옮기시오. 단, 시간복잡도는 O(n), 공간복잡도는 O(1)여야 합니다.

예제)
Input: [0, 5, 0, 3, -1]
Output: [5, 3, -1, 0, 0]

Input: [3, 0, 3]
Output: [3, 3, 0]
 풀이를 보고 싶으시다면 풀이보기를 눌러주세요. 

매주 월요일 아침 8시에 문제와 풀이를 보내드립니다.
문제가 있으시면 언제든 dev@mailprogramming.com 으로 이메일 보내주세요. 



해결 : C++


#include <iostream>
using namespace std;

int main(void) {
int cnt = 0;
cin >> cnt;

int *SaveArray = new int[cnt + 1];
cout << "INPUT : ";
for (int i = 0; i < cnt; i++) {
cin >> SaveArray[i];
}
int count = cnt - 1;
/*Repeat check */

while(count--){
for (int i = 0; i < cnt; i++) {
int temp = 0;
if (SaveArray[i] == 0 && (i+1) != cnt) {
temp = SaveArray[i+1];
SaveArray[i + 1] = 0;
SaveArray[i] = temp;
}
}
}
cout << "OUTPUT : ";

for (int i = 0; i < cnt; i++) {
cout << SaveArray[i] << " , ";
}
}

댓글 없음:

댓글 쓰기

Heic to jpg 변환기 Mac Automator를 활용해서 만들어보기.

Heic to jpg 변환기 Automator를 활용해서 만들어보기!! 우선 이 글은 기본적인 shell script를 이해하는 분들이 활용하기 매우 좋습니다. 아이폰의 설정 - 카메라 - 포맷 분을 보면 아래와 같습니다. ...