가장 가까운 글자

2023. 4. 3. 15:15

인트로

더이상 미룰 수 없어서 풀어보는 프로그래머스...

알고리즘 해야하는데...


문제

레벨1 : https://school.programmers.co.kr/learn/courses/30/lessons/142086


나의 풀이

function solution(s) {
	const stringArr = [...s];
	const result = [];
	let closestIdx = -1;
	stringArr.map((el,idx)=> {
		for (let i = 0; i < idx; i++) {
			if(stringArr[i] === el) {
				closestIdx = idx-i;
			}
		}
		result.push(closestIdx);
		closestIdx = -1;
	})
	return result;	
}

다른 풀이 참고

객체를 사용한 사람과 slice를 사용한 사람이 있어 다시 풀어보았습니다.

function solution(s) {
	const result = [...s].map((el,idx)=> {
		const sliceStr = s.slice(0,idx).lastIndexOf(el);	
		return sliceStr < 0 ? -1 : idx-sliceStr;
	})
	return result;
}

lastIndexOf 는 또 처음보네요... 지식이 늘었다.. 편하다..

function solution(s) {
	const obj = {};
	return [...s].map((el,idx)=> {
		result = (el in obj) ? idx-obj[el] : -1;
		obj[el] = idx;
		return result;
	})
}

 

 

'programmers' 카테고리의 다른 글

모의고사  (2) 2023.04.25
추억 점수  (0) 2023.04.06
시저 암호  (0) 2023.03.29
수박수박수박수박수박수?  (0) 2023.03.24
소수 찾기  (1) 2023.03.16

BELATED ARTICLES

more