Programmers

Programmers 문제 풀이 27

백단비 2023. 6. 23. 11:24

문제 설명 : 가장 큰 수 찾기

정수 배열 array가 매개변수로 주어질 때,

가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하는 solution 함수는???

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array 원소 ≤ 1,000
  • array에 중복된 숫자는 없습니다.

 

입출력 예

 

array result
[1, 8, 3] [8, 1]
[9, 10, 11, 8] [11, 2]

 

문제 풀이

 

큰 수를 구해주는 Math.max와 배열을 흩뿌려주는 '...' 스프레드 연산자를 사용한 후 배열에 값을 넣어서 풀었다.

function solution(array) {   
  return [Math.max(...array),array.indexOf(Math.max(...array))]
}

 

 


 

 

문제 설명 : 약수 구하기

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return 하는 solution함수???

 

제한사항

  • 1 ≤ n ≤ 10,000

 

입출력 예

 

n result
24 [1, 2, 3, 4, 6, 8, 12, 24]
29 [1, 29]

 

문제 풀이

 

n을 1~n까지의 숫자로 나눴을때 나머지가  0이면 반환할 배열에 넣어줬다.

function solution(n) {
	var answer = [];
	for(let i = 1; i<=n ; i++){
		if(n%i === 0){
			answer.push(i)
		}
	}
	return answer;
}

 

 


 

 

문제 설명 : 한 번만 등장한 문자

문자열 s가 매개변수로 주어집니다.

s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하는 solution함수???

한 번만 등장하는 문자가 없을 경우 빈 문자열을 return한다.

 

제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있다.

 

입출력 예

 

s result
"abcabcadc" "d"
"abcd" "abcd"
"hello" "eho"

 

문제 풀이

 

indexOf는 처음부터 문자가 어느 위치에 있는지 찾고, lastIndexOf는 끝에서부터 찾는다.

두 개의 인덱스의 위치가 같을 경우에는 하나만 존재하는 것이기 때문에 배열에 push 해준다.

배열로 만들어 준 이유는 오름차순으로 바꿔야 하기 때문에 일단 배열로 반환

sort로 오름차순 해주고, join으로 문자열로 만들어줬다.

function solution(s) {
	var answer = [];
	for(let i=0; i< s.length; i++) {
		if(s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
			answer.push(s[i])
		}
	}
	return answer.sort().join("");
}

 

https://programmers.co.kr 

 

프로그래머스

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

programmers.co.kr

 

320x100

'Programmers' 카테고리의 다른 글

Programmers 문제 풀이 29  (0) 2023.06.27
Programmers 문제 풀이 28  (0) 2023.06.24
Programmers 문제 풀이 26  (0) 2023.06.22
Programmers 문제 풀이 25  (0) 2023.06.21
Programmers 문제 풀이 24  (0) 2023.06.20