SSAFY/SWEA

[SWEA] 1234 : 비밀번호

믕비 2023. 4. 26. 12:30
반응형

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AV6kld8aisgDFASb&contestProbId=AV14_DEKAJcCFAYD&probBoxId=AV-4MojKLNADFATz&type=PROBLEM&problemBoxTitle=%5BD2~D3+%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4%5D+%EA%B8%B0%EC%B4%88+%EB%8B%A4%EC%A7%80%EA%B8%B0+Part4&problemBoxCnt=14 

 

SW Expert Academy

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

swexpertacademy.com

 큐로 풀면 되는 문제였는데 Deque으로 풀어봤다.

 

내 코드

메모리 : 18364 KB

시간 : 99 ms

코드길이 : 1190 B

 

[내 코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class Solution {
	static int N;
	static String password;
	static Deque<Integer> deque;

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		for(int t = 1; t <= 10; t++) {
			st = new StringTokenizer(br.readLine());
			sb.append('#').append(t).append(' ');
			
			N = Integer.parseInt(st.nextToken());
			password = st.nextToken();
			
			deleteNum();
			
			while(!deque.isEmpty()) {
				sb.append(deque.pollFirst());
			}
			sb.append('\n');
		}
		
		System.out.print(sb);
	}
	
	public static void deleteNum() {
		deque = new LinkedList<>();
		deque.addLast(password.charAt(0) - '0');
		for(int n = 1; n < N; n++) {
			int nowNum = password.charAt(n) - '0';
			
			if(!deque.isEmpty()) {
				if(deque.peekLast() == nowNum) {
					deque.pollLast();
				}
				else {
					deque.addLast(nowNum);
				}
			}
			else
				deque.addLast(nowNum);
		}
	}
}
반응형

'SSAFY > SWEA' 카테고리의 다른 글

[SWEA] 1229 : 암호문 2  (0) 2023.04.26
[SWEA] 1228 : 암호문 1  (0) 2023.04.26
[SWEA] 1298 : 원재의 메모리 복구하기  (0) 2023.04.17
[SWEA] 1206 : View  (0) 2023.04.17
[SWEA] 1491 : 원재의 벽 꾸미기  (0) 2023.04.17