본문 바로가기
Algorithm/Weekly Solved

[백준 2941] 크로아티아 알파벳 - Java 코드

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

오랫만에 백준문제를 풀게되어,

문제 제출 양식을 몰라 찾아보았다.

기본적으로 class명을 Main으로 고정시키고, main 메소드를 구현하되, 

표준입력을  받는 형식으로 구현하면된다.

public class Main {
	public static void main(String[] args) {
   		// 구현 코드
	}
}

 

문제

 

설계

바꾸고자 하는 알파벳을 저장해두고,

입력받은 문자열에서

해당 단어 존재여부를 검사하면서 Replace해주는 문제이다.

String 클래스의 대표적인 Method 중 기본적인 replace, contains 만 알면 풀 수 있다.

 

풀이

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);  // ljes=njak
		String str = sc.next();
		System.out.println(solution(str));
	}
	public static int solution(String str) {
		String[] croAlpha = {"c=","c-","dz=","d-","lj","nj","s=","z="};
		for(String s : croAlpha)
			if(str.contains(s)) str = str.replaceAll(s, "*");
		return str.length();
	}
}

 

오랫만에 백준문제를 보니, 프로그래머스와 코드 형식의 차이가 눈에 띈다.

 

프로그래머스는 표준입력이 이미 주어지는 형태로 Solution 함수에서 파라미터로 받아 구현하는 방식이였다면,

백준은 기본적으로 Scanner 클래스를 통해 표준입력을 직접 넣는 형태로 구현 제출해야한다.

 

백준의 문제풀이 Form이 Debug까지 다양하게 할 수 있어 훨씬 좋은것 같다.

프로그래머스의 문제를 풀때도 제출전까지 Scanner를 이용하면 디버깅에 용이하겠다.