[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/42748
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 사고]
오늘의 문제도 매우 쉬웠다.
배열 내의 가장 큰 두 수를 뽑아내어 1씩 뺀 다음 곱하는 매우 간단한 문제였다.
[풀이과정]
1. 조건이 담긴 이중 배열을 순회하며 각 요소마다 그 안의 요소를 출력하여 주어진 배열을 조작하는 형태를 구상한다.
2. 조건에 맞게 주어진 배열을 slice method를 이용해 자르는 코드를 작성한다.
3. 이어서 잘린 배열을 오름차순으로 정렬하기 위해 sort method를 이용한다.
4. 정렬된 배열을 순회하며 조건에 맞는 index의 요소가 담긴 배열을 반환한다.
[제출한 코드]
function solution(array, commands) {
const arr = commands.map(e => (array.slice(e[0]-1,e[1]).sort((a,b) => a - b))[e[2]-1] )
return arr
}
[회고]
문제 자체는 어렵지 않았다. 하지만 이중 배열을 순회하며 그 안에서 주어진 배열에 맞게 배열 method를 사용하는 과정에서 index를 생각하는 부분에서 어려움을 느꼈다. 배열 자체의 index 값을 이용하는게 아니라 배열 내 요소의 위치를 갖고 코드를 작성하는 과정이 필요해서 index에 접근하기 위해서는 주어진 조건에서 1을 뺀 다음 코드를 작성해야 했다. 문제 해결 방법을 떠올리는데에는 어려움이 없었지만 구현 능력이 조금 부족했던 문제였다.
'Coding Test > 항해99 - 코테 스터디 2기' 카테고리의 다른 글
99클럽 코테 스터디 8일차 TIL(5월 28일) + 알고리즘 완전 탐색 (0) | 2024.05.28 |
---|---|
99클럽 코테 스터디 7일차 TIL(5월 27일) + 알고리즘 정렬 (0) | 2024.05.27 |
99클럽 코테 스터디 5일차 TIL(5월 25일) + 자료구조 Array (0) | 2024.05.25 |
99클럽 코테 스터디 4일차 TIL(5월 24일) + 자료구조 Heap (0) | 2024.05.24 |
99클럽 코테 스터디 3일차 TIL(5월 23일) + 자료구조 Stack (0) | 2024.05.23 |