크로아티아 알파벳(2941) - JS

박정호·2022년 3월 7일
0

BAEKJOON

목록 보기
47/57
post-thumbnail

처음에는 includes()함수를 이용하여 arr배열의 값이 입력값 안에 존재하면 카운트를 증가시키고 전체 입력값 길이에서 카운트 값을 빼주는 방식을 선택했습니다. 하지만, 두번 연속 반복 하는 "c=c=" , "dz=z=" 등과 같은 예외상황이 발생하여 다른 방법을 생각했고, split(), join()을 이용한 방식으로 해결할 수 있었습니다.

string.split(separator, limit)

split() 함수는,
문자열을 'separator'로 잘라서,
'limit' 크기 이하의 배열에 잘라진 문자열을 저장하여 리턴합니다.

separator
필수 아님
문자열을 잘라 줄 구분자 (문자열 또는 정규식)
값이 입력되지 않으면 문자열 전체를 배열에 담아서 리턴합니다.

limit
필수 아님
최대 분할 갯수
ex)

const str = "apple banana orange";
const arr = str.split(" ");
document.writeln(arr.length); // 3
document.writeln(arr[0]); // apple
document.writeln(arr[1]); // banana
document.writeln(arr[2]); // orange

위의 코드 경우 " " 는 공백을 의미하고, split(" ")은 str 값의 공백을 기준으로 문자열을 잘라서 배열 값에 저장하는 것입니다.

join() 메서드
배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
ex)

const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"

이 두가지 함수를 어떻게 이용할까?
split은 주어진 seperator를 기준으로 구분하고, join의 seperator는 그 이음새를 채워줍니다. 따라서, split(alpa)는 arr 배열을 반복하면서 그 값들이 존재하면 그 값들을 기준으로 요소를 분리하고 join("p")는 그 이음새를 p로 지정한다는 것입니다.

따라서, 입력값이 ljes=njak 의 경우, lj , s=, nj 가 p 값으로 변환됩니다.

  ljes=njak
	ljes=njak
	ljes=njak
	pes=njak
	pes=pak
	peppak
	peppak

그 뒤 문자열의 길이 값을 구하면 원하는 답을 구할 수 있습니다.
결국 크로아티아 알파벳이 있는 부분은 하나의 문자로 변환하여 카운트하기 쉽게 변형시켜주는 과정을 말할 수 있겠습니다.

참고:
https://hianna.tistory.com/377
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join
https://velog.io/@daekuenhan/%EB%B0%B1%EC%A4%80node.js-2941%EB%B2%88-%ED%81%AC%EB%A1%9C%EC%95%84%ED%8B%B0%EC%95%84-%EC%95%8C%ED%8C%8C%EB%B2%B3

profile
기록하여 기억하고, 계획하여 실천하자. will be a FE developer (HOME버튼을 클릭하여 Notion으로 놀러오세요!)

0개의 댓글