반복문 i번에 조건을 구성하는 변수값이 변경된다면, i+1에는 바뀐 변수값으로 조건을 따짐
<문제 설명>
제한사항
입출력 예beforeafterresult
입출력 예 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
입출력 예beforeafterresult
"olleh" | "hello" | 1 |
"allpe" | "apple" | 0 |
입출력 예 설명
입출력 예 #1
- "olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.
입출력 예 #2
- "allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.
<제출 답안>
function solution(before, after) {
let new_after = after.split("")
let new_before = before.split("")
const new_before2 = before.split("")
for(let i=0; i< new_before2.length; i++){
if(new_before.includes(new_after[i])){ // 포함되있는지 확인
let place = new_before.indexOf(new_after[i]) // 위치 포착
new_before.splice(place, 1 )
}
}
return new_before == ''? 1: 0
}
이 문제를 풀면서 얻은 소득은
1. 이전 반복문인 i=1에서 splice해서 if의 조건인 배열의 모양이 바뀌었다면, i=2에서는 그 바뀐 배열의 모습을 적용한다
2. [ ](빈 배열)은 null이 아니라 ' '로 조건식을 맞춰줘야 한다는 것.
사실 이렇게 간단한 문제풀이법도 있다. 그런데 이걸 스스로 생각해낸게 아닌 이상, 답을 배껴쓰면 도움이 되나 싶다. (물론 모르면 어쩔수 없겠지만 ㅠ)
function solution(before, after) {
return before.split('').sort().join('') === after.split('').sort().join('') ? 1 : 0;
}
-> 문자열의 배순서는 sort()를 통해 한다는 것을... 알지만 활용하지 못한..
'🗃️javascript > 프로그래머스' 카테고리의 다른 글
수박수박수박수박수박수?(Lv.1)[str.repeat(횟수)] (1) | 2023.01.11 |
---|---|
가운데 글자 가져오기(Lv.1)[문자열도 str[i]가능] (0) | 2023.01.10 |
없는 숫자 더하기(Lv.1)[문제 조건들 똑바로 읽자. includes()설명] (0) | 2023.01.10 |
팩토리얼(Lv.0)[반복을 너무 많이 돌리면 시간초과로 오류가 뜬다.] (0) | 2023.01.10 |
분수의 덧셈(기초 day2) (0) | 2023.01.10 |