누구나 알고리즘으로 기초 | 기초 알고리즘 배우기 심화 | 이미지 처리 알고리즘부터 머신 러닝, 신경망까지 다음 분에게 추천합니다! 문제현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만드려 한다. 입력 설명M개의 줄에 걸쳐 수학테스트 결과가 학생번호로 주어진다. 학생번호가 제일 앞에서부터 1등, 2등, ...N등 순으로 표현된다.
데이터가 다음과 같은 형태로 주어진다. 출력 설명짝을 만들 수 있는 총 경우의 수를 출력하시오. 내 풀이
결과적으로 (3, 1), (3, 2), (4, 2) 의 3가지 경우의 수가 멘토-멘티 관계를 만족한다. Array.indexOf를 이용해보자.위와 같이 2중 for문을 사용하는 것은 어쩔 수 없다고 하더라도, 그 내부에서 for(k), for(s)까지 쓰는 것이 싫다면 Mozilla Docs에 따르면 indexOf는 배열 내에서 찾고싶은 값의 인덱스를 찾아준다. 위의 코드를 가져와 해당 메서드만 적용해보면,
다음과 같이 사용하면 된다. 유의할 점indexOf 메서드는 2번째 인자로 fromIndex를 받는데, 이 인자 값을 설정하지 않으면 기본값 0을 가진다. 만약 indexOf만을 고집해서 모든 1의 인덱스를 사용하고 싶다면
다음과 같이 배열의 처음부터 1의 index를 찾는다. 느낀점사실 문제를 처음 봤을 때 indexOf 메서드에 대한 생각이 먼저 났던 것이 사실이다. 그러나 만약 "메서드를 쓰지 말고 반복문으로만 구현해 보세요." 라는 추가적인 조건이 달린다면? 최신의 문법인 spread operator(...) 등의 화려한 스킬을 사용할 수 있으나, 예쁜 메서드를 이용해서 예쁘게 푸는 것도 좋다. 공유하기 게시글 관리 저작자표시 'DS & Algorithm > basic' 카테고리의 다른 글[기초 알고리즘] 최대공약수 최소공배수 찾기(유클리드 호제법) - 자바스크립트 (0)2021.05.04[기초 알고리즘] 가장 짧은 문자거리 - 자바스크립트 (0)2021.04.16[기초 알고리즘] 봉우리 - 자바스크립트 (0)2021.04.08[기초 알고리즘] 등수 구하기 - 자바스크립트 (0)2021.04.08[기초 알고리즘] 최솟값 구하기 - 자바스크립트 (0)2021.04.07 |