-
[코딩테스트] - 짝지어 제거하기 LV2 ( 프로그래머스(programmers) / java )👍programmers 2024. 4. 11. 22:56728x90반응형
안녕하세요 나홀로전세집입니다.
위풍당당 스폰지밥 오늘은 레벨2 짝지어 제거하기 풀어보겠습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다음은 문제 설명입니다.
문자열에서 겹치는 알파벳을 없애 다 없어지면 1을 리턴 다 없어지지 않으면 0을 리턴해야하는 문제입니다.
알고리즘을 설명드리겠습니다.
배열을 스택처럼 사용해 스택의 top과 현재 체크값을 비교하여 스택을 지우는 알고리즘을 사용할 것 입니다.
다음은 알고리즘을 그림으로 표현한 것 입니다.
다음은 문제풀이 코드입니다.
class Solution { public int solution(String s) { char[] stack = new char[s.length()]; // 스택을 사용한 알고리즘 풀이 int top = 0; // 스택의 최상단을 체크할 변수 stack[0] = s.charAt(0); // 반복문 전 스택을 하나 채우기 for (int i = 1; i < s.length(); i++) { // 문자열 반복문 if (top >= 0 && stack[top] == s.charAt(i)) { // 스택이 안비어있고 문자가 같을 때 top--; // 스택 제가 } else { // 아니면 스택에 채우기 stack[++top] = s.charAt(i); } } if(top == -1){ // 스택이 비어있으면 1 리턴 return 1; } else { // 스택이 차있으면 0 리턴 return 0; } } }
오랜만에 자료구조를 사용해서 문제를 풀어보았습니다. 직접 스택을 사용하지는 않았지만 배열을 사용해 스택을 구현하여 재밌던 코드였습니다.
오늘도 즐코딩 하시고 좋은 하루 되세요~
728x90반응형'programmers' 카테고리의 다른 글
[코딩테스트] - JadenCase 문자열 만들기 LV2 ( 프로그래머스(programmers) / java )👍 (2) 2024.04.12 [코딩테스트] - 피보나치 수 LV2 ( 프로그래머스(programmers) / java )👍 (1) 2024.04.11 [코딩테스트] - 최댓값과 최솟값 LV2 ( 프로그래머스(programmers) / java )👍 (15) 2024.04.04 [코딩테스트] - 다음 큰 숫자 LV2 ( 프로그래머스(programmers) / java )👍 (0) 2024.04.04 [코딩테스트] - 숫자 변환하기LV2 ( 프로그래머스(programmers) / java )👍 (1) 2024.04.02