on my way
[GDSC Week0-3] 백준 1547번:: 공 (C++) 본문
반응형
* 문제를 풀기 위해 생각한 아이디어
크기가 3인 배열을 선언하고, 차례대로 컵번호 {1,2,3}으로 선언한다.
swap함수로 해당 위치의 컵 바꾸기를 진행하고 최종적으로 1번컵이 위치한 배열의 순서를 출력한다.
* 코드
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char const *argv[]){
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int A, B, M;
int arr[3]={1, 2, 3};
cin >> M;
for(int i=0; i<M; i++){
cin >> A >> B;
swap(arr[A-1], arr[B-1]);
}
for(int i=0; i<3; i++){
if(arr[i]==1) cout<<i+1;
}
}
* 어떻게 풀었는지
1. 교환할 컵의 번호 A, B, 반복횟수 M, 컵의 배열 arr을 각 컵의 번호 1,2,3으로 선언한다.
2. 반복횟수 M을 입력받는다.
3. 교환할 컵의 번호를 입력받고, swap한다.
4. for문으로 1번 컵을 찾으면 해당 위치를 출력한다. (-번째이므로 +1)
* 회고
1. 문제를 잘못이해해서 가장 왼쪽에 위치한 컵의 번호를 출력하라는 것으로 이해했었다.
2. 문제에서 컵이 없는 경우가 -1라고 했는데, 이런 경우가 있는가..? 괜히 헤맸다.ㅎㅎ
* 문제 링크
https://www.acmicpc.net/problem/10804
10804번: 카드 역배치
1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다.
www.acmicpc.net
반응형
'algorithm > C++' 카테고리의 다른 글
[GDSC Week1-3] 백준 11582번:: 치킨 TOP N (C++) (0) | 2021.10.03 |
---|---|
[GDSC Week1-2] 백준 10610번:: 30 (C++) (0) | 2021.10.03 |
[GDSC Week1-1] 백준 11931번:: 수정렬하기4 (C++) (0) | 2021.10.03 |
[GDSC Week0-2] 백준 10804번:: 카드역배치 (C++) (0) | 2021.09.26 |
[GDSC Week0-1] 백준 4358번:: 생태학 (C++) (0) | 2021.09.26 |