1) SW Expert Academy 정책상 문제 자체를 퍼가는 것은 금지되며 링크와 출처로 명시해 주시기 바랍니다.
2) 문제에 대한 본인의 풀이에 대해서는 개인 학습 등 상업적 용도가 아닌 경우에만 문제 출처와 함께 게시가 가능합니다.
※ 저작권 이슈가 있을 시 법적 제재를 받을 수 있으니 참고하여주시기 바랍니다.
문제 설명
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 풀이
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt(); // 10
for(int test_case = 1; test_case <= T; test_case++)
{
String t = sc.next(); // #1
int number = sc.nextInt(); // 7041
String[] str = new String[number];
for(int i=0; i<number; i++){
str[i] = sc.next();
}
int[] arr = new int[number];
for(int i = 0; i < number; i++) {
if(str[i].equals("ZRO")) arr[i] = 0;
if(str[i].equals("ONE")) arr[i] = 1;
if(str[i].equals("TWO")) arr[i] = 2;
if(str[i].equals("THR")) arr[i] = 3;
if(str[i].equals("FOR")) arr[i] = 4;
if(str[i].equals("FIV")) arr[i] = 5;
if(str[i].equals("SIX")) arr[i] = 6;
if(str[i].equals("SVN")) arr[i] = 7;
if(str[i].equals("EGT")) arr[i] = 8;
if(str[i].equals("NIN")) arr[i] = 9;
}
int tmp;
for(int i = 0; i < number - 1; i++){
for(int j = 0; j < number - i - 1; j++){
if(arr[j] > arr[j + 1]){
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for(int i=0; i<number; i++){
if(arr[i] == 0) str[i] = "ZRO";
if(arr[i] == 1) str[i] = "ONE";
if(arr[i] == 2) str[i] = "TWO";
if(arr[i] == 3) str[i] = "THR";
if(arr[i] == 4) str[i] = "FOR";
if(arr[i] == 5) str[i] = "FIV";
if(arr[i] == 6) str[i] = "SIX";
if(arr[i] == 7) str[i] = "SVN";
if(arr[i] == 8) str[i] = "EGT";
if(arr[i] == 9) str[i] = "NIN";
}
System.out.println("#" + test_case);
for(int i =0; i < str.length; i++){
System.out.print(str[i]+" ");
}
}
}
}
1.String 배열에 집어넣고, 정렬하기 위해서 숫자로 바꿔서 정수배열에 넣어준 후, 오름차순으로 정렬한 뒤 다시 문자로열로 바꿔준뒤 출력
2.자바에서 문자열을 비교할 때 == 연산자를 사용하면 메모리 주소를 비교하는 것에 주의
3.버블 정렬의 범위 초과 주의할 것
다른 풀이
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); // 10
String[] numWords = {"ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"};
for (int test_case = 1; test_case <= T; test_case++) {
sc.next(); // Ignore case label (e.g., #1)
int number = sc.nextInt();
int[] count = new int[10];
for (int i = 0; i < number; i++) {
String word = sc.next();
for (int j = 0; j < numWords.length; j++) {
if (word.equals(numWords[j])) {
count[j]++;
break;
}
}
}
System.out.println("#" + test_case);
for (int i = 0; i < numWords.length; i++) {
for (int j = 0; j < count[i]; j++) {
System.out.print(numWords[i] + " ");
}
}
System.out.println();
}
sc.close();
}
}
'👨💻 Coding Test > Java' 카테고리의 다른 글
[Programmers/Java/Lv.0] 43.주사위의 개수 (0) | 2024.12.02 |
---|---|
[Programmers/Java/Lv.0] 42.배열 회전시키기 (0) | 2024.12.02 |
[SW Expert Academy/Java/D3] 1220.Magnetic (2) | 2024.11.12 |
[SW Expert Academy/Java/D3] 1217.거듭 제곱 (0) | 2024.11.12 |
[SW Expert Academy/Java/D3] 1215.회문1 (0) | 2024.11.10 |