nuri-story 2023. 10. 9. 11:51

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

 

프로그래머스

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

programmers.co.kr

 

정답코드

function solution(s) {
    return [...s].filter(c => s.split(c).length === 2).join('')
}

 

 

메소드 설명

let s = 'abcdefg'

s.split('')
(7) ['a', 'b', 'c', 'd', 'e', 'f', 'g']

console.log([...s])
instrument.js:108 (7) ['a', 'b', 'c', 'd', 'e', 'f', 'g']

s.split('a')
(2) ['', 'bcdefg']

s.split('g')
(2) ['abcdef', '']

 

1. split으로 나눌때 한 번만 등장한 문자는 ['', 'bcdefg'] 결과값이 나옴 즉 2개일때만 필터링하면됨

let s = 'abcabcadc'

undefined
s.split('d')
(2) ['abcabca', 'c']
s.split('c')
(4) ['ab', 'ab', 'ad', '']

 

 

 

2. 순서대로 정렬해야 값이 나옴

[...s].filter(c => s.split(c).length === 2).join('')
'abdc'
[...s].filter(c => s.split(c).length === 2).sort().join('')
'abcd'