hye-log

[SWEA]1234번 비밀번호(JAVA) 본문

CodingTest/SWEA

[SWEA]1234번 비밀번호(JAVA)

iihye_ 2023. 7. 29. 17:47

0. 문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14_DEKAJcCFAYD 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

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