[백준(BOJ)] 줄세우기(10431번)_C++
2024. 3. 15. 18:21ㆍProblem Solving/Greedy & 구현
728x90
반응형
SMALL
문제에 주어진 규칙대로 구현하면 되는 문제다.
별다르게 어려울 건 없는데 내가 실수하나 했던 부분은
학생들을 뒤로 미루는 작업을 할때 앞에서부터 시작했다.
이렇게 해도 예제는 결과가 올바르게 나와서 왜 틀렸는지 모를 수도 있다.
앞에서부터 미루면 다 같은 값으로 미뤄지기 때문에 뒤에서부터 해야한다.
굉장히 당연한 원리이지만 무심코 하기 쉬운 실수라 생각해서 언급해본다.
정답 코드
#include <iostream>
using namespace std;
int p, t, arr[20];
int main(){
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> p;
while (p--){
cin >> t;
int walk = 0;
for (int i = 0; i < 20; i++){
//insert end
cin >> arr[i];
//search first taller
for (int j = 0; j < i; j++){
if (arr[i] < arr[j]){
//move counter
walk += i - j;
//back move
int temp = arr[i];
for (int k = i; k > j; k--)
arr[k] = arr[k - 1];
arr[j] = temp;
}
}
}
cout << t << " " << walk << "\n";
}
}728x90
반응형
LIST
'Problem Solving > Greedy & 구현' 카테고리의 다른 글
| [백준(BOJ)] 쿠키의 신체 측정(20125번)_C++ (0) | 2024.03.18 |
|---|---|
| [백준(BOJ)] 비밀번호 발음하기(4659번)_C++ (0) | 2024.03.16 |
| [백준(BOJ)] Byte Coin(17521번)_C++ (1) | 2023.09.26 |
| [백준(BOJ)] 트럭(13335번)_C++ (0) | 2023.09.20 |
| [백준(BOJ)] 명령 프롬프트(1032번)_C++ (0) | 2023.04.16 |