Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- linux
- shell
- 턱걸이
- 프로그래밍
- 공부
- 리눅스
- CV
- 시스템프로그래밍
- 프로세스
- C++
- C언어
- python
- 코딩
- c
- 회귀
- 백준알고리즘
- 운영체제
- Windows 10
- 텐서플로우
- Computer Vision
- Windows10
- 알고리즘
- OpenCV
- 쉘
- TensorFlow
- 백준
- 영상처리
- 딥러닝
- error
- 학습
Archives
- Today
- Total
줘이리의 인생적기
백준 c++ 1138번 한 줄로 서기 본문
728x90
문제 바로가기(출처) : https://www.acmicpc.net/problem/1138
1138번: 한 줄로 서기
첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i보다 작거나 같다.
www.acmicpc.net
설명
백준 1138번 문제 한 줄로 서기 문제입니다.
이해를 못해서 한참 읽었는데요.
입력 시 키 1부터 순서대로 왼쪽에 자신보다 키 큰 사람이 몇 명 있는지 주어집니다.
키 1인 사람부터 왼쪽에 몇 명 있는지 검사 하면서 오른쪽으로 한칸 씩 자리 이동 합니다.
키 큰 사람들을 다 지나쳤다면 그 자리에 맞는 위치와 자신의 키를 부여받습니다.
키 2인 사람을 검사합니다. 같은 원리로 수행합니다.
키 3도 동일
. . .
서있는 순서대로 키를 출력합니다.
코드
#include <iostream>
using namespace std;
int P[5]; //인덱스 번호 = 키, 값 = 자신보다 키큰사람 명수
int main() {
int N, left;
cin >> N; //사람 수 입력, 예제에서는 4명 입력.
for (int i = 0; i < N; i++) { //0부터 하지만 i+1이 키
cin >> left; //키가 1인 사람부터 왼쪽 키가 큰 사람 수 입력
for (int j = 0; j < N; j++) {
if (left == 0 && P[j] == 0) { //키 큰 사람들을 지나쳤고 자신의 자리라면
P[j] = i + 1; //P[j]는 자신의 위치, i+1은 키
break;
}
else if (P[j] == 0) { //키 큰 사람이 남았다면 돌아가서 j++
left--;
}
}
}
for (int i = 0; i < N; i++) {
cout << P[i] << ' '; //서 있는 순서대로 키 출력
}
return 0;
}
결과
지적 및 개선사항은 언제든지 댓글로 부탁드립니다!
'공부 > 백준' 카테고리의 다른 글
백준 C++ 2588번 곱셈 (1) | 2020.05.12 |
---|---|
백준 c++ 1330번 두 수 비교하기 (0) | 2020.05.11 |
백준 c++ 1110번 더하기 사이클 (0) | 2020.05.08 |
백준 c++ 1008번 A/B (0) | 2020.05.08 |
백준 c++ 1001번 A-B (0) | 2020.05.08 |