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

이강혁·2023년 9월 20일
0

프로그래머스

목록 보기
15/79
post-custom-banner

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

문제 설명

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < before의 길이 == after의 길이 < 1,000
  • before와 after는 모두 소문자로 이루어져 있습니다.

입출력 예

before	after	result
"olleh"	"hello"	1
"allpe"	"apple"	0

입출력 예 설명

  • 입출력 예 #1
    "olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.
  • 입출력 예 #2
    "allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.

코드

function solution(before, after) {

	return before.split('').sort().join('')===after.split('').sort().join('')?1:0;

}

before과 after를 정렬했을 때 같게 나오면 순서를 바꿔서 before에서 after로 갈 수 있는 것.
다르게 나오면 순서 바꿔도 안 됨.

function solution(before, after) {
    before = before.split('');
	after = after.split('');

	after.filter(v => {
    	if (before.includes(v)) {
        	before.splice(before.indexOf(v), 1);
            return true;
	    } else {
    	    return false;
    	}
	})

	return before.length === 0 ? 1 : 0;
}

한 글자씩 filter를 통해서 before에 있으면 splice를 통해서 날려버림.
마지막에 남는 글자 없으면 1, 있으면 0

profile
사용자불량
post-custom-banner

0개의 댓글