algorithm/문제풀이

연습문제 > 바탕화면 정리

yongfront 2024. 5. 24. 19:26
반응형
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/161990

 

프로그래머스

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

programmers.co.kr

 

거리를 복잡하게 구해서 풀면 될 것 같은데

더 쉽게 푸는 방법은 없나 잠깐 테스트

 

가장 처음에 만난 문서의  Y좌표는 고정일 것이다

 

이렇게 문서가 있든

 

이렇게 있든

항상 제일 먼저 만나는 문서의 세로축 시작점은 동일할 것이다라는 생각에서 출발

 

세로축, 가로축 순으로 읽는다고 한다면

처음 문서는 0, 1에 있고 

두번째 스샷에 있는 문서는 1,5 에 있음

거리가 어찌됐든 문서 1은 0에서 드래그를 시작해야하고

문서2는 1에서 드래그를 시작해야함

 

리턴해야할 배열의 첫번째 값은 테스트케이스에서 전부 맞았다

2 3 4 번째 숫자만 알면 되겠다

 

3번째 숫자도 알 수 있다

가장 마지막문서의 세로축 좌표가 3번째 숫자

문서가 어떻게 배치 돼있든 마지막 문서의 세로축까지는 드래그를 해야하니까

 

 

원하는값에 익명함수로 값 리턴해서 뽑는 식으로 바꿈

세번째 값까지 잘 구해진다

거꾸로 for 문을 돌릴 때는 length의 길이에 유의 해야함 [".#...", "..#..", "...#."] 의 세개의 값일 때

[2] 의 위치가 가장 끝이지만 length는 3이므로 - 1을 해주고 

그럴 경우 i 값이 2부터 순회하므로 마지막에 + 1을 더해주는 식으로 함

 

2번째 값과 4번째 값도 마찬가지로

가로축의 가장 먼저 시작한 문서와 끝의 문서 위치만 가져와주면 될 것 같은데

순회하는 방식을 잘 바꾸면 될 것 같다 

 

실제로 저 구조를 짜는데 고생했다 

뭔가 머릿속에서 제대로 그려지지 않아서 console.log 로 찍어가면서 세로열부터 불러오도록 하는식으로 포문을 수정 함

테스트는 통과 됐지만

 

뭔가 너무 지저분하게 짠건 아닐까 생각이 듦

 

지피티는 답을 알고 있다

 

728x90
반응형
LIST