728x90
반응형
https://www.acmicpc.net/problem/1138
1. Logic
for문을 0부터 돌기때문에 내 앞에 나오는 애들은 전부 나보다 키가 작다. 그래서 내 앞에 키 큰 사람이 몇명올지 그 사람들의 자리를 남겨 놓는게 목적이다.
2. Code
#include <iostream>
using namespace std;
int seat[10];
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++) { //입력 받는 횟수
int left;
cin >> left;
for(int j = 0; j < n; j++) {
//내 앞에 키 큰 사람 자리가 마련되어 있고 내 자리가 비었다면 앉기
//하지만 지금 자리에 나보다 작은 애가 앉아있다면 다음 자리에 앉기
if(left == 0 && !seat[j]) {
seat[j] = i+1;
break;
}
// 내 앞에 키 큰 사람이 남아있고, 지금 앉아야 할 자리도 비었다면
else if(!seat[j]) {
left--;
}
}
}
for(int i = 0; i < n; i++)
cout << seat[i] << ' ';
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 17266 어두운 굴다리 C++ :: Binary Search (0) | 2023.11.11 |
---|---|
[백준/Baekjoon] 2240 자두나무 C++ :: Dynamic Programming (0) | 2023.11.10 |
[백준/Baekjoon] 14891 톱니바퀴 C++ :: Implementation (0) | 2023.11.08 |
[백준/Baekjoon] 2563 색종이 C++ :: Implementation (0) | 2023.11.07 |
[백준/Baekjoon] 2012 등수 매기기 C++ :: Greedy (0) | 2023.11.07 |