```
백준 2161번 카드 1 JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 2161번 카드1 풀이
https://www.acmicpc.net/problem/2161
2161번: 카드1
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
백준 2161번 카드1은
난이도 브론즈 등급의 문제로서
정수를 입력받고
입력받은 정수만큼 오름차순을 가진 카드가 있을 때
첫 번째 카드를 버리고
두 번째 카드는 맨뒤로 넣는다고 할 때
버리는 카드를 순서대로 출력하면 됩니다.
예를 들어
10을 입력받으면
1 3 5 7 9 2 6 10 8 4
순으로 버리게 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
데크, 리스트 등을 이용해서
값을 저장하고
조건에 따라서 값을 넣고 빼주면 되는 간단한 문제입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cardCnt = Integer.parseInt(br.readLine());
List<Integer> cardList = new ArrayList<>();
// 입력받은 정수만큼 오름차순으로 카드숫자 생성
for (int i = 1; i < cardCnt + 1; i++) {
cardList.add(i);
}
//출력값을 담을 리스트에
// 순서대로 값을 넣고
// 리스트가 비게 되면 종료
List<Integer> outputList = new ArrayList<>();
while (true) {
outputList.add(cardList.get(0));
cardList.remove(0);
if (cardList.size() < 1) {
break;
}
int firstCard = cardList.get(0);
cardList.remove(0);
cardList.add(firstCard);
}
outputList.forEach(result -> System.out.print(result + " "));
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
'Java > Java 알고리즘' 카테고리의 다른 글
백준 2530번 인공지능 시계 JAVA 구현해보기 (0) | 2021.12.05 |
---|---|
백준 1740번 거듭제곱 JAVA 구현해보기 (0) | 2021.12.03 |
백준 20001번 고무오리 디버깅 JAVA 구현해보기 (0) | 2021.12.03 |
백준 16435번 스네이크버드 JAVA 구현해보기 (0) | 2021.12.01 |
백준 3054번 피터팬 프레임 JAVA 구현해보기 (0) | 2021.11.28 |
```
백준 2161번 카드 1 JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 2161번 카드1 풀이
https://www.acmicpc.net/problem/2161
2161번: 카드1
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
백준 2161번 카드1은
난이도 브론즈 등급의 문제로서
정수를 입력받고
입력받은 정수만큼 오름차순을 가진 카드가 있을 때
첫 번째 카드를 버리고
두 번째 카드는 맨뒤로 넣는다고 할 때
버리는 카드를 순서대로 출력하면 됩니다.
예를 들어
10을 입력받으면
1 3 5 7 9 2 6 10 8 4
순으로 버리게 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
데크, 리스트 등을 이용해서
값을 저장하고
조건에 따라서 값을 넣고 빼주면 되는 간단한 문제입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cardCnt = Integer.parseInt(br.readLine());
List<Integer> cardList = new ArrayList<>();
// 입력받은 정수만큼 오름차순으로 카드숫자 생성
for (int i = 1; i < cardCnt + 1; i++) {
cardList.add(i);
}
//출력값을 담을 리스트에
// 순서대로 값을 넣고
// 리스트가 비게 되면 종료
List<Integer> outputList = new ArrayList<>();
while (true) {
outputList.add(cardList.get(0));
cardList.remove(0);
if (cardList.size() < 1) {
break;
}
int firstCard = cardList.get(0);
cardList.remove(0);
cardList.add(firstCard);
}
outputList.forEach(result -> System.out.print(result + " "));
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
'Java > Java 알고리즘' 카테고리의 다른 글
백준 2530번 인공지능 시계 JAVA 구현해보기 (0) | 2021.12.05 |
---|---|
백준 1740번 거듭제곱 JAVA 구현해보기 (0) | 2021.12.03 |
백준 20001번 고무오리 디버깅 JAVA 구현해보기 (0) | 2021.12.03 |
백준 16435번 스네이크버드 JAVA 구현해보기 (0) | 2021.12.01 |
백준 3054번 피터팬 프레임 JAVA 구현해보기 (0) | 2021.11.28 |