-
1138.한 줄로 서기알고리즘/백준 BAEK JOON 2020. 5. 17. 15:37
(*)이번 문제는 너무 어렵게 풀어서 다른사람의 코드를 참고해서 글을 쓴다.
참고:https://jaimemin.tistory.com/757
< Code 설명 >
#include <iostream> #define MAX 10 using namespace std; int arr[MAX]; int main(){ int n; cin >> n; for (int i = 0; i < n; i++){ // 사람 수 만큼 비교 int pos; // 왼쪽의 인원 cin >> pos; for (int j = 0; j < n; j++){ if (pos == 0 && arr[j] == 0){ // 왼쪽인원이 0이면서 배열값 0일때 arr[j] = i+1; // 해당 배열에 1+i값을 해주고 break; // for문 종료 -> 바로 다음 for문으로 } else if (arr[j]==0) // 해당 배열이 0이면 pos--; // 왼쪽의 인원 변수 값을 하나줄임 } } for (int i = 0; i <n; i++) cout << arr[i] << " "; return 0; }
# 결국 코드에서 작동하는 원리는 다음과 같다.
자신보다 큰 왼쪽인원의 크기를 부여받은 숫자가 자기자리를 찾아가는 형식이다.
-> 나는 크기비교를 통해 진행했지만 이 분의 코드는 0을 이용해서 자리배치를 하지않은 것 비교해 진행했다.
-> pos값을 0이 될 때까지 하나씩 줄이며 자리를 찾아갔다.
반응형'알고리즘 > 백준 BAEK JOON' 카테고리의 다른 글
1541.잃어버린 괄호 (2) 2020.05.18 2529.부등호 (0) 2020.05.18 1120.문자열 (0) 2020.05.17 1018.체스판 다시 칠하기 (0) 2020.05.04 14891.톱니바퀴 (0) 2020.05.01 댓글