본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - A로 B 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/120886

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

시도 1)

 

- 두 String을 리스트로 추출하여 비교 

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class Solution {
    
    //리스트의 길이가 같은지 비교하고, contaisAll()을 이용하여 
    //before의 요소가 after에 모두 포함되어 있는지 확인
    public boolean isSame(List<Character>list1, List<Character>list2)
    {
        return (list1.size()==list2.size())&&list1.containsAll(list2);
    }
    
    public int solution(String before, String after) {
        
        ArrayList<Character>beforelist = new ArrayList<>();
        ArrayList<Character>afterlist = new ArrayList<>();
        
        for(int i=0; i<before.length(); i++)
        {
            beforelist.add(before.charAt(i));
        }
        
        for(int i=0; i<after.length(); i++)
        {
            afterlist.add(after.charAt(i));
        }
        
        if(isSame(afterlist,beforelist))
        {
            return 1;
        }
        else
        {
            return 0;
        }
        
        
        
    }
}

 

 

 

 

Arrays.equals()로 일차원 배열 비교 

Java - 두 배열을 비교하는 방법 (codechacha.com)

 

Java - 두 배열을 비교하는 방법

자바에서 두개의 배열이 같은지, 다른지 비교할 때 직접 비교하는 코드를 구현할 수도 있지만, Arrays 라이브러리를 이용하면 간단하게 구현할 수 있습니다. Arrays.equals()는 인자로 전달된 두개의

codechacha.com

 

- Arrays,equals()는 인자로 전달된 두 개의 일차원 배열을 비교하여 같은지 다른지 boolena으로 결과를 리턴 

 

import java.util.Arrays;

public class Example1 {

    public static void main(String[] args) {

        int[] first = { 1, 2, 3 };
        int[] second = { 1, 2, 3 };
        int[] third = { 1, 2, 3, 4 };

        System.out.println("first is equal to second ? "
                + Arrays.equals(first, second));

        System.out.println("first is equal to third ? "
                + Arrays.equals(first, third));

        System.out.println("first is equal to null ? "
                + Arrays.equals(first, null));
    }
}

 

 

 

정답 

 

- 정렬해서 비교 

 

import java.util.Arrays;

class Solution {
    public int solution(String before, String after) {
        
        String beforestr[] = before.split("");
        String afterstr[] = after.split("");
        
        //정렬 해서 비교 
        Arrays.sort(beforestr);
        Arrays.sort(afterstr);
        
        if(Arrays.equals(beforestr,afterstr))
        {
            return 1;
        }
        else
        {
            return 0;
        }
        
    }
}