22.02.27 백준 1755번

김민혁·2022년 2월 27일
1

하루한문제

목록 보기
18/22

문제

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String[] arr_word = {"zero","one","two","three","four","five","six","seven","eight","nine"};
		String input = sc.nextLine();
		
		int m = Integer.parseInt(input.split(" ")[0]); 
		int n = Integer.parseInt(input.split(" ")[1]); 
		String[] arr_target = new String[n-m+1];
		String[] arr_result = new String[n-m+1];	
		for (int i = 0; i < arr_target.length; i++) {
			if((m+i)/10>0) {
				arr_target[i] = arr_word[(m+i)/10];
				arr_target[i] += " "+arr_word[(m+i)%10];
			} else {
				arr_target[i] = arr_word[(m+i)%10];
			}
		}
		
		Arrays.sort(arr_target);
		
		for (int i = 0; i < arr_target.length; i++) {
			if(arr_target[i].length()>5) {
				for (int j = 0; j < arr_word.length; j++) {
					if(arr_target[i].split(" ")[0].equals(arr_word[j])) {
						arr_result[i] = String.valueOf(j); 
					}
				}
				for (int j = 0; j < arr_word.length; j++) {
					if(arr_target[i].split(" ")[1].equals(arr_word[j])) {
						arr_result[i] += j; 
					}
				}
				
			} else {
				for (int j = 0; j < arr_word.length; j++) {
					if(arr_target[i].equals(arr_word[j])) {
						arr_result[i] = String.valueOf(j);
					}
				}
			}
		}
		for (int i = 0; i < arr_result.length; i++) {
			System.out.print(arr_result[i]);
			if(i%10!=9) System.out.print(" ");
			
			if(i%10==9&&i!=0) System.out.println(); 
		}
	}
}

접근 방식-> M~N까지의 문자열의 배열을 만들고(두자리일때,한자리일때 나눠서) Arrays.sort로 정렬시킨다.
정렬된 문자열 배열을 다시 조건에 맞춰 숫자로 바꾸고 결과배열에 담아서 출력한다

profile
안녕하세요 김민혁입니다.

1개의 댓글

comment-user-thumbnail
2022년 2월 27일

화이팅!!

답글 달기