Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dfs문제
- 포스코 AI교육
- DP
- 알고리즘
- 포스코 ai 교육
- 코테 문제
- 초소형머신러닝
- DP문제
- BFS
- tflite
- 삼성코딩테스트
- bfs문제
- 삼성역테
- 포스코 교육
- 다이나믹프로그래밍
- 딥러닝
- TensorFlow Lite
- tinyml
- 코딩테스트
- dfs
- 영상처리
- 자료구조
- 삼성역량테스트
- 임베디드 딥러닝
- 그리디
- 코테
- 컴퓨팅사고
- MCU 딥러닝
- sort
- 삼성코테
Archives
- Today
- Total
코딩뚠뚠
[백준문제풀이] 1138 한 줄로 서기 본문
반응형
풀이일시 : 2020-09-02
문제 :
N명의 사람들은 매일 아침 한 줄로 선다. 이 사람들은 자리를 마음대로 서지 못하고 오민식의 지시대로 선다.
어느 날 사람들은 오민식이 사람들이 줄 서는 위치를 기록해 놓는다는 것을 알았다. 그리고 아침에 자기가 기록해 놓은 것과 사람들이 줄을 선 위치가 맞는지 확인한다.
사람들은 자기보다 큰 사람이 왼쪽에 몇 명 있었는지만을 기억한다. N명의 사람이 있고, 사람들의 키는 1부터 N까지 모두 다르다.
각 사람들이 기억하는 정보가 주어질 때, 줄을 어떻게 서야 하는지 출력하는 프로그램을 작성하시오.
입력:
첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i보다 작거나 같다.
ex)
4 //사람의 수
2 1 1 0 //키가 1인사람의 왼쪽에는 자기보다 키큰사람이 두명
키가 2인 사람의 왼쪽에는 자기보다 키큰사람이 한명
키가 3인 사람의 왼쪽에는 자기보다 키큰사람이 한명
키가 4인 사람의 왼쪽에는 자기보다 키큰사람이 없다.
출력:
줄을 선 순서대로 키를 출력한다.
ex)
4 2 1 3
풀이 :
사람들을 키 순서대로 세우면 되는 문제이다.
자신보다 왼쪽에 있는 사람의 숫자를 입력으로 넣는다.
모든 사람에 대해서 왼쪽부터 하나씩 살펴보며 자신이 들어갈 수 있는 위치를 고르면 된다.
그리디알고리즘 분류
#include <iostream>
using namespace std;
int d[11];
int main() {
int n;
cin >> n; //사람의 수 n명
for (int i = 1; i <= n; i++) {
int x;
cin >> x; //자기보다 키가 큰 사람이 왼쪽에 몇 명 있었는지 i=1:x=2 , 2:1, 3:1, 4:0
int count = 0;
//사람과 위치 계속 반복하며 빈 위치에 넣어주면된다.
for (int j = 1; j <= n; j++) { //사람이 서있는 위치
if (count == x && d[j] == 0) {
d[j] = i; //d[3]=1 d[2]=2 d[4]=3 d[1]=4 //1번사람은 3번위치에(두명이앞에있으니)
// 2번사람은 2번위치에
// 3번사람은 1번안되고 3번안되고 2번안되니깐 4번위치에
// 4번사람은 1번위치에
break;
}
if (d[j] == 0)
count++;
}
}
for (int i = 1; i <= n; i++) {
printf("%d ", d[i]);
//줄을 선 순서대로 키를 출력한다.
}
return 0;
}
반응형
'알고리즘 문제풀이 > 백준문제풀이' 카테고리의 다른 글
[백준문제풀이] 10610 30 (0) | 2020.12.31 |
---|---|
[백준문제풀이] 1541 잃어버린 괄호 (0) | 2020.12.31 |
[백준문제풀이] 2217 로프 (0) | 2020.12.30 |
[백준문제풀이] 11399 ATM (0) | 2020.12.30 |
[백준문제풀이] 11047 동전0 (0) | 2020.12.30 |