Free Lines Arrow
본문 바로가기
728x90

Algorithm/프로그래머스 알고리즘26

[프로그래머스] 행렬 테두리 회전하기 문제 분석 분석이 좀 필요한 문제 였다. 2,2,5,4 가 주어 졌을때 회전 시킨다 문제를 보면 한칸씩 시계 방향으로 회전 시키면 될것 같다. 어떻게 기준을 잡을 것인가? Point1(2,2), Point2(5,4), StartPoint(point1.x, point1.y) 로 기준을 잡는다. 어떻게 위치를 바꿔 나갈 것인가? step1 오른쪽으로 이동: StartPoint y 가 point2 의 y 와 같아 질때까지 y 증가 step2 아래로 이동: StartPoint x 가 point2 의 x 와 같아 질때까지 x 증가 step3 왼쪽으로 이동: StartPoint y 가 point1 의 y 와 같아 질때까지 y 감소 step3 위로 이동: StartPoint x 가 point1 의 x 와 같아 질때까.. 2022. 7. 8.
[프로그래머스] 완주하지 못한 선수 문제 분석 List, Map 어떤걸로 풀어야 될까 고민을 해봐야 한다. 문제 분류가 Map 이기때문에 Map을 써야 하는데 왜 그럴까? List 로 구현하면 최소 탐색 시간이 O(N) 이 걸린다. 하지만 Map의 경우 Tree 구조를 가지고 있기 때문에 O(h) 트리의 높이 만큼 걸린다. 하지만 최악의 경우 N 이 걸리기도 한다. 그렇기 때문에 Map 을 쓰자 구현1 (효율성 실패케이스) import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; int index = 0; ArrayList completionList = new ArrayLis.. 2021. 10. 19.
[프로그래머스] 정수 삼각형 문제 분석 DP 문재다. DP 문제는 메모이제이션이라고도 하는데 계산된 값을 저장해 두었다가 다시 사용하는 것을 말한다. 위에서 부터 누적합을 만들어 내려 가면된다. 주의점은 누적된 값 + 선택할수 있는 값 중에 최대 값이다. 구현 class Solution { public int solution(int[][] triangle) { int answer = 0; for (int i = 1; i 2021. 10. 18.
[프로그래머스] 영어끝말잇기 문제 분석 2단계라 그렇게 어렵진 않았다. 입출력 예제를 보면 인덱스를 주어 쉽게 풀수 있다. 현재 몇회차 끝말잇기가 진행되었는지 탈락자는 몇번 인지. 구현 import java.util.*; class Solution { public int[] solution(int n, String[] words) { int[] answer = new int[2]; ArrayList checkWordList = new ArrayList(); int rotateCount = 1; int wordCount = 1; int currentCount = 1 ; boolean isWrongWord = false; for(int i = 0; i < words.length-1; i++) { wordCount++; currentCo.. 2021. 10. 15.
728x90
반응형