18일차 - 알고리즘 코드카타

2024. 8. 7. 14:22·Java & Spring/코딩테스트

- 회고

68. 햄버거 만들기 : https://school.programmers.co.kr/learn/courses/30/lessons/133502#

 

프로그래머스

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

programmers.co.kr

 

- 풀이 과정

import java.util.*;
class Solution {
    public int solution(int[] ingredient) {
        int answer = 0;

        List<Integer> li = new ArrayList<>();
        for (int n : ingredient) {
         li.add(n);
        }

        int i = 0;
        while (i <= li.size() - 4) {
            if (li.get(i) == 1 && li.get(i + 1) == 2 && li.get(i + 2) == 3 && li.get(i + 3) == 1) {
                answer++;
                for (int j = 0; j < 4; j++) {
                    li.remove(i);
                }
                i = Math.max(0, i - 3);
            } else {
                i++;
            }
        }
        return answer;
    }
}
  1. 입력 배열을 리스트화한다.
  2. 리스트를 돌면서 li.size() - 3까지 반복문을 실행한다.
  3. 조건에 맞는 순서가 출현하면 asnwer을 증가시키고 해당하는 항목을 li.remove한다
  4. 재귀 할 때 시작점을 outofbounds를 고려하여 Math.max(0, i - 3)으로 설정
    ※ i - 3인 이유는 패턴의 길이가 4이기때문이다, 패턴 겹침 검사는 i = i - (n - 1)이다
    [2, 2, 1, 2, 1, 2, 3, 1, 3, 1]인경우
    i = 4지점에서 패턴이 발견되어 삭제 후 [2, 2, 1, 2, 3, 1]인 상태가 된다.
     i = 4지점인 3을 가르키고 있는데 이 상태에서 i - 3을 하게되면 겹치는 부분을 고려해 패턴검사를 시행 할 수 있다.

- 진행

일자 완료 번호
24.07.16 ~ 24.07.31 1~63
24.08.01 64
24.08.02 65
24.08.05 66
24.08.06 67
24.08.07 68
   
   
   
   
   
   
   

'Java & Spring > 코딩테스트' 카테고리의 다른 글

20일차 - 알고리즘 코드카타  (1) 2024.08.09
19일차 - 알고리즘 코드카타  (1) 2024.08.08
17일차 - 알고리즘 코드카타  (0) 2024.08.06
16일차 - 알고리즘 코드카타  (0) 2024.08.06
15일차 - 알고리즘 코드카타  (1) 2024.08.05
'Java & Spring/코딩테스트' 카테고리의 다른 글
  • 20일차 - 알고리즘 코드카타
  • 19일차 - 알고리즘 코드카타
  • 17일차 - 알고리즘 코드카타
  • 16일차 - 알고리즘 코드카타
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 이론공부 N
        • 정보처리기사 N
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java two-pointer
    java 에라토스테네스의 체
    프로그래머스 java 기초 트레이닝
    java 유클리드 호제법
    데이터 타입
    java
    java arrays.copyofrnage()
    java기초
    java 세수의합
    개발로드맵
    프로그래머스 java 기초트레이닝
    java 멤버
    데이터 크기
    Java 생성자
    java 제어자
    java enhance switch
    java super
    자료구조
    Java this
    java 메서드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
18일차 - 알고리즘 코드카타
상단으로

티스토리툴바