프로그래머스_프로세스 JAVA

2025. 1. 30. 23:21·알고리즘/알고리즘 풀이
반응형

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

오늘 풀어볼 문제는 '프린터'였지만 프로그래머스에서 아무리 찾아봐도 안나와서

챗GPT한테 물어보니 프린터 문제가 프로세스로 바뀌었단다.... 챗GPT를 너무 맹신하면 안 된다.

휴 내 발등을 한 두번 찍는게 아니란 말이지.

아무튼 이번 문제는 처음 풀어보는 문제다. 그래서 과거 코드가 없다.

이번에는 Deque를 사용했다. 영한쓰가 자바 강의에서 stack과 queue보다는 Deque를 사용하라했다.

자세한 내용은 기억이 안나서 챗GPT한테 물어봤더니

1. 단순한 큐 동작만 필요하면 Queue가 빠름

2. 양방향 삽입/삭제가 필요한 경우라면 Deque 사용이 더 유리함

3. 일반적으로 ArrayDeque가 가장 빠르고 효율적이므로 우선 선택하는게 좋다

이렇게 정리해줬다.

 

코드

import java.util.*;

class Solution {
    public int solution(int[] priorities, int location) {
        int targetIdx = location;
        int removeCnt = 0;
        Deque<Integer> deque = new ArrayDeque<>();

        for(int i = 0; i < priorities.length; i++) {
            deque.offer(priorities[i]);
        }

        while(!deque.isEmpty()) {
            int curValue = deque.poll();
            
            if(hasGreaterValue(curValue, deque)) {
                deque.offer(curValue);
                if (targetIdx == 0) targetIdx = deque.size() - 1;
                else targetIdx--;
            } else {
                removeCnt++;
                if(targetIdx == 0) return removeCnt;
                else targetIdx--;
            }
        }
        
        return removeCnt;
    }
    
    public static boolean hasGreaterValue(int num, Deque<Integer> deque) {
        for (int value : deque) {
            if(num < value) return true;
        }
        return false;
    }
}

문제를 풀고 3점을 얻었다.

이번 문제도 시간을 꽤나 잡아먹었는데.. 챗GPT한테 테케 추천해달라해서 

그대로 사용했다. 그랬더니 한 케이스만 계속 실패가 떠서 코드를 이리저리 바꾸고 해봤는데 도저히 답을 모르겠어서

직접 로직을 손으로 그려봤다(?)

아무리 봐도 내가 한게 맞는 거 같아 챗GPT한테 물어봤다.

이 악물었다

구구절절 답변을 줬는데 결론은..ㅋ

어..이..없..어

그래서 그냥 제출했더니... 통과됐다 ㅎ

 

오늘도 즐거운 코딩~!

내일 출근한다.....

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • 프로그래머스_체육복 JAVA
  • 프로그래머스_같은 숫자는 싫어 JAVA
  • 프로그래머스_다리를 지나는 트럭 JAVA
  • 프로그래머스_올바른 괄호 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    springboot
    프론트엔드
    Java
    코딩테스트
    스프링부트
    에러해결
    자바스크립트
    react
    JPA
    IT
    전자정부프레임워크
    RESTful
    알고리즘
    프로그래머스
    QueryDSL
    토비의스프링부트
    oracle
    인프런
    MSA
    기출문제
    운영체제
    egov
    SQL
    개발자
    백준
    넥사크로
    방통대
    토이프로젝트
    SpringBoot를 이용한 RESTful Web Service 개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
프로그래머스_프로세스 JAVA
상단으로

티스토리툴바