코테/코드트리

[코드트리/NOVICE MID] 순서를 바꾸었을 때 같은 단어인지 판별하기 (JAVA)

imname1am 2023. 10. 24. 01:22
반응형

🔺 문제

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

🔺 코드

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
import java.util.*;
import java.io.*;
 
public class Main {
    static char[] ch1, ch2;
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                
        String str1 = br.readLine();
        String str2 = br.readLine();
 
        ch1 = str1.toCharArray();
        ch2 = str2.toCharArray();
 
        Arrays.sort(ch1);
        Arrays.sort(ch2);
 
        System.out.println(canMake(ch1, ch2) ? "Yes" : "No");        
    }
 
    private static boolean canMake(char[] c1, char[] c2) {
        if(c1.length != c2.lengthreturn false; // 두 문자열 길이가 다른 경우, 만들 수 X.
 
        for(int i = 0 ; i < c1.length ; i++) {
            if(c1[i] != c2[i])
                return false;
        }
        return true;
    }
}
cs

 

 

🧩  해결 아이디어

• 정렬

1. 각 문자열을 char형 배열로 변환하고, 정렬한다.

2. 두 char형 배열의 같은 인덱스끼리의 값을 비교하며 만들 수 있는지 확인한다.

 

 


🔺 다른 풀이들

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

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        String str1 = sc.next();
        String str2 = sc.next();

        char[] chars1 = str1.toCharArray();
        Arrays.sort(chars1);
        String sortedStr1 = new String(chars1);

        char[] chars2 = str2.toCharArray();
        Arrays.sort(chars2);
        String sortedStr2 = new String(chars2); 

        if(sortedStr1.equals(sortedStr2))
            System.out.print("Yes");
        else
            System.out.print("No");
    }
}

- 입력받은 두 단어를 char형으로 변환하고, 정렬한다.

- 정렬한 char형 배열의 값을 String형으로 변환한다.

- 두 문자열이 같은지 다른지 확인한다.

 

 


💬 느낀 점

자신감 끌어올려~~

 

 

1회독 2회독 3회독 4회독 5회독
V        

 

반응형