Notice
Recent Posts
Link
- Today
- Total
hye-log
[SWEA]1234번 비밀번호(JAVA) 본문
0. 문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14_DEKAJcCFAYD
1. 문제 설명
1) 문자열에서 같은 번호 쌍 소거하고 비밀번호로 만들기
2. 입출력
// input
10 1238099084
16 4100112380990844
// output
#1 1234
#2 4123
3. 코드
import java.util.*;
public class swea1234 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = 10; // 테스트 케이스의 개수
for(int t = 1; t <= T; t++) {
// 입력
int n = sc.nextInt(); // 문자의 총 수
String str = sc.next(); // 문자열
Stack<Integer> stack = new Stack<>(); // Integer형 스택 선언
// 구현
for(int i = 0; i < n; i++) {
int temp = str.charAt(i)-'0'; // 숫자로 변환
if(stack.empty()) { // 스택이 비어 있으면
stack.push(temp); // 스택에 push
} else { // 스택이 비어 있지 않으면
if(stack.peek() == temp) { // 제일 상단의 값과 현재 값이 같은지 확인
stack.pop(); // 같으면 pop
} else { // 같지 않으면
stack.push(temp); // 스택에 push
}
}
}
// 출력
System.out.printf("#%d ", t);
for(Integer i: stack) {
System.out.print(i);
}
System.out.println();
}
}
}
실행 결과
4. 회고
stack을 활용해서 마지막에 넣은 숫자와 현재 숫자가 같으면 마지막에 넣은 숫자를 꺼냄
5. Github
https://github.com/iihye/Algorithm/blob/main/SWEA/swea1234.java
728x90
'CodingTest > SWEA' 카테고리의 다른 글
[SWEA]1940번 가랏! RC카!(JAVA) (0) | 2023.07.30 |
---|---|
[SWEA]1974번 스도쿠 검증(JAVA) (0) | 2023.07.30 |
[SWEA]1208번 Flatten(JAVA) (0) | 2023.07.30 |
[SWEA]2805번 농작물 수확하기(JAVA) (0) | 2023.07.29 |
[SWEA]7272번 안경이 없어!(JAVA) (0) | 2023.07.29 |
Comments