문제https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이세 가지 변수를 잘 관리하는 것이 포인트이다. 1. 현재 컬럼의 위치를 나타내는 정수형 `cur`2. 현재 표의 전체 크기를 나타내는 정수형 `size`3. 삭제한 컬럼의 위치를 보관하는 스택 자료구조인 `deque` (자바에서는 stack이 레거시 자료구조라 deque로 구현함) 그리고 명령어에 따른 동작은 크게 세 가지 메서드로 구현했다. 1. moveColumn()방향에 따라 현재 컬럼 위치(`cur`)를 이동한다. 2. dele..
Java/프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 구현 문제인데, 구현도 구현이지만 자료 구조를 얼마나 잘 이해하고 쓰는지가 중요한 문제라고 생각했습니다. 이 문제를 풀면서, 구현과 시간 초과를 내지 않기 위해 생각했던 중요한 포인트 두 가지는 조합을 구현하는 것과 Map 자료 구조를 사용하는 것이었습니다. 조합을 구현할 때에, 손님을 순차적으로 돌며 손님이 주문한 메뉴 내에서만 조합을 통해 문자열을 찾아내었습니다. 그리고 조합을 통해..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbweeO3%2FbtsHJ9nVTtP%2FcyQJlk9YPpx4oMqNdNVWXk%2Fimg.png)
문제https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이구현 문제입니다. 우선 키패드 간의 거리는 행렬 격자 상에 있다고 가정했습니다. 키패드를 누를 때마다 현재 left, right의 위치가 갱신됩니다. 그리고 다음 번호와 left, right의 거리를 비교해야합니다. 저는 각 번호를 행렬의 열과 행으로 바꾸어준 뒤, Math.abs(r1-r2)+Math.abs(c1-c2)의 식을 통해 거리를 계산했습니다. 해당 번호를 각각의 행과 열로 표현..