junior developer :)/알고리즘 & 코딩테스트
알고리즘 연습_이차원 배열 안에서 특정 문자 찾기
ㅁ윤슬ㅁ
2022. 10. 14. 00:32
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
반응형