티스토리 뷰

알고리즘

백준 #1316 java 2023.01.15

chaewonni 2023. 1. 15. 02:00

개인적으로 어려웠던 그룹단어체커 문제. 계속 풀다가 코드가 너무 지저분해져서 결국 다른 분의 코딩을 참고하여 작성했다.

 

package boj_basic.step6;

import java.util.Scanner;

public class Q1316_1 {
	static Scanner sc = new Scanner(System.in);
	
	public static boolean check() {
		boolean[] check = new boolean[26];
		int prev = 0;
		String s = sc.next();
		
		for(int i = 0; i<s.length(); i++) {
			int now=s.charAt(i);
			
			if(prev != now) {
				if(check[now-'a']==false) {
					check[now-'a']=true;
					prev = now;
				}
				else
					return false;
			}
			else
				continue;
		}
		return true;
	}

	public static void main(String[] args) {
		
		int cnt = 0;
		int N = sc.nextInt();
		
		for(int i = 0; i<N; i++) {
			if(check()==true) {
				cnt++;
			}
		}
		System.out.println(cnt);

	}

}

아직 코딩 실력이 부족해서 그런지 이런 구조로 문제를 풀 수 있다는 게 신기했다. 전에도 말했던 얘기지만 boolean형 배열을 써서 문제를 풀어본 경험이 극히 드물어서 그런지 자꾸 boolean배열을 사용할 생각을 못하는 것 같다. 

특히 이 코드에서 prev=now로 만들어서 다음에 같은 문자가 나오면 continue로 바로 다음으로 넘어갈 수 있도록 한 것이 놀라웠다.

 

boolean형 배열 잘쓰자!!!!!!

'알고리즘' 카테고리의 다른 글

백준 #2775 java 2023.01.18  (2) 2023.01.18
백준 #1712 java 2023.01.17  (0) 2023.01.17
백준 #2941 java 2023.01.15  (0) 2023.01.15
백준 #1065 java 2023.01.13  (1) 2023.01.13
백준 #4673 java 2023.01.13  (0) 2023.01.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함