알고리즘 스터디 4주차[정렬]
[정렬] 백준1755
[숫자놀이]
package Baekjoon;
import java.util.Arrays;
import java.util.Scanner;
public class Main_1755 {
public static void main(String[] argv) {
String str[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
char num[]={'0','1','2','3','4','5','6','7','8','9'};
int num2[]={0,1,2,3,4,5,6,7,8,9};
Scanner sc=new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
String arr[][] =new String[N-M+1][2];
String str2[] =new String[N-M+1];
for(int i=0;i<=(N-M);i++){
String s = String.valueOf(M+i);
for(int j=0;j<10;j++) {
if (s.charAt(0) == num[j]) {
arr[i][0] = str[j];
if(i+M>=10){
for (int k = 0; k < 10; k++) {
if (s.charAt(1) == num[k]) {
arr[i][1] = str[k];
str2[i]=arr[i][0]+" "+arr[i][1];
}
}
}
else {
arr[i][1]="a";
str2[i]=arr[i][0]+" "+arr[i][1];
}
}
}
}
Arrays.sort(str2);
int arr1[]=new int[N-M+1];
for(int i=0;i<arr1.length;i++){
arr[i] = str2[i].split(" ");
for(int j=0;j<10;j++) {
if (arr[i][0].equals(str[j]) && arr[i][1].equals("a")) {
arr1[i] = num2[j];
}
else if(arr[i][0].equals(str[j])) {
for (int k = 0; k < 10; k++) {
if (arr[i][1].equals(str[k])) {
arr1[i] = num2[j]*10+num2[k];
}
}
}
}
}
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
if(i%10==9) System.out.println();
}
}
}
총 6개의 배열을 사용해 문제를 풀었다
각배열은 (숫자를 영어로 표현), (숫자를 문자로 표현), (숫자를 int로 표현), (입력한 숫자를 2차원배열에 각 단위별 문자열로 저장),(입력한 단위별 문자열을 정렬후 숫자로 변화하여 저장하는 용도로 저장)으로 구분하여 숫자를 문자열로 변경 후 charAt()함수로 숫자를 문자열로 저장하고 공백을 기준으로 합쳐준 후 오름차순 정렬 후 공백을 기준으로 split함수로 쪼갠 후 출력하는 구조로 코드를 짰다.
Author And Source
이 문제에 관하여(알고리즘 스터디 4주차[정렬]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaehyukjung/알고리즘-스터디-4주차정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)