728x90
반응형
Q. 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 "A"의 위치 정보를 요소로 갖는 배열을 리턴해라
* arr[i]는 'A' 또는 'B' 만을 요소로 갖는다
** 항상 한개의 문자열 'A'가 존재한다
- 접근 방식
제일 밖에 있는 배열을 for문을 통해 돌면서 안에 해당 문자가 있는지 확인한 뒤 ( indexOf )
A 열의 index 번호를 새로운 배열 뒤에 추가한다(push)
배열에 맨 앞 인덱스에 해당 인덱스 번호를 추가한다(unshift)
- 나의 풀이 방식
function findA(arr) {
let result = []
for(let i = 0; i<arr.length; i++)
{
if(arr[i].indexOf('A') !== -1)
{
result.push(arr[i].indexOf('A'))
result.unshift(i)
}
}
return result
}
// ex. [['B','B']['A','B']]의 이차원배열을 인자로 주었을 때
// [1,0]의 결과값이 나온다
- 다른 풀이 방식
function findA(arr) {
for (let i = 0; i < arr.length; i += 1) {
for (let j = 0; j < arr[i].length; j += 1) {
if (arr[i][j] === 'A') {
return [i, j];
}
}
}
}
내 풀이 방식과 다른 점은
이중 for문을 이용해 내부에 있는 값들을 하나씩 확인해서 A가 있으면 i인덱스와 j인덱스를 출력해주는 것
처음에는 저 방법을 생각했으나 다양한 메소드를 사용해서 작성해보고 싶어 위의 방법으로 해결했다
사용했던 메서드
indexOf() 특정 문자를 찾는데 사용되는 메서드로, 찾으면 인덱스 번호, 없으면 -1을 반환한다
push() object의 맨 마지막에 값을 추가해주는 메서드로 immutable하다
unshift() object의 맨 앞에 값을 추가해주는 메서드로 immutable하다
728x90
반응형
'junior developer :) > 알고리즘 & 코딩테스트' 카테고리의 다른 글
재귀함수에 대해서_factorial (+ 논리 곱 & 논리 합) (0) | 2022.10.20 |
---|---|
알고리즘_ 바빌로니아법으로 제곱근 구하기(toFixed()) (0) | 2022.10.14 |
알고리즘 연습_문자열 변형 JS (Reverse, UpperCase) (0) | 2022.09.27 |
프로그래머스 _문자열을 정수로 바꾸기, 평균구하기(Level.1/JS) (2) | 2022.09.05 |
프로그래머스 _ 같은 숫자는 싫어(JS/Level.1) (0) | 2022.08.30 |