728x90
■ 삼각형의 완성조건(1)
- 이 문제의 접근방식은 sides의 배열값들을 오름차순으로 정렬한뒤,
- 가장 작은 큰 수를 제외한 나머지 두 값의 합을 구하고
- 가장 큰 수와 두수를 비교해서 1 또는 2를 return 해주면 된다.
- 이 과정에서 정렬을 위해 sort함수와 경우의 수를 위해 if-else 문을 썼다.
- 다른 사람들의 풀이를 보면
- return 부분을 삼항연산자를 이용해 깔끔하게 한줄로 작성할 수 있다.
function solution(sides) {
sides = sides.sort((a,b) => a-b)
return sides[0]+sides[1] > sides[2] ? 1 : 2;
}
■ 가까운 수
- 이 문제의 접근방식은 배열안에 있는 수 중에서 n과 가장 가까운 수를 찾아서 반환해주는것이다.
- 가장가까운 수를 찾기 위해 배열의 모든 요소를 순회하면서 n과의 차이를 계산한 뒤
- 그 중에서 가장 작은 차이를 가지는 요소를 반환하기로 한다.
- 먼저 array 배열의 첫번째 요소를 가장가까운 수로 초기화한다.
- 둘의 차이에 관한 변수를 절댓값으로 변환해 저장한다.
- 반복문 for를 사용해 배열을 순회하면서 주어진 n과의 차이를 계산한다.
- 조건에서 차이가 같은 요소가 여러개일 경우 더 작은 수를 선택하라는 문장이 있어서
- else if문을 사용해서 newDiff 와 diff가 같을때 close에 array[i]를 반환해준다.
■ 대문자와 소문자
- 이 문제의 접근방식은
- 먼저 my_string을 반복문을 통해 문자에 하나씩 접근한다. 각문자가 대문자일 경우 소문자로
- 소문자일 경우 대문자로 변환한 뒤 새로운 문자열 result에 추가한다.
- 코드를 한줄씩 설명하면,
- result를 빈문자열로 초기화한다.
- 반복문 for를 통해 my_string 문자에 접근했다.
- 변수 char에 my_string 의 문자중 하나를 저장한다.
- 조건문 if-else문을 이용해 char는 a~z까지의 조건을 갖고 있다.
- 결과로나온 char를 대문자로, 그외는 소문자로 변환한값을 result에 저장해준다.
- 그 후에 result 반환한다.
■ 암호 해독
function solution(cipher, code) {
let result = "";
for (let i = code - 1; i < cipher.length; i += code) {
result += cipher[i];
}
return result;
}
- 갑자기 캡쳐버튼이 먹히지 않아서 급한데로 코드블럭으로 올렸다.
- 이 문제의 접근방식은
- 먼저, 문자열 cipher에서 code의 배수번째 글자를 추출한다.
- 이때, 코드에서의 인덱스는 0부터 시작하므로, 추출할 글자의 인덱스는 code-1이 된다.
- 추출한 글자는 문자열 result에 추가된다.
- cipher.length 만큼 반복해주고 최종으로 추출된 문자열 result를 반환한다.
728x90
'개발 이모저모 > 프로그래머스 알고리즘' 카테고리의 다른 글
[Algorithm] 프로그래머스 레벨[0] 풀이 - (Javascript)(13) (0) | 2023.05.08 |
---|---|
[Algorithm] 프로그래머스 레벨[0] 풀이 - (Javascript)(11) (0) | 2023.04.15 |
[Algorithm] 프로그래머스 레벨[0] 풀이 - (Javascript)(10) (0) | 2023.04.13 |
[Algorithm] 프로그래머스 레벨[0] 풀이 - (Javascript)(9) (0) | 2023.04.10 |
[Algorithm] 프로그래머스 레벨[0] 풀이 - (Javascript)(8) (0) | 2023.04.08 |