[프로그래머스] 조건에 맞게 수열 반환하기 2 - JAVA

2024. 9. 8. 02:22·알고리즘

[작성일: 2023. 10. 18]

 

 

풀이

class Solution {
    public int solution(int[] arr) {
        int answer = 0;
        int count = 0;

        while(count < arr.length){
            count = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] >=50 && arr[i] % 2 == 0) {
                    arr[i] /= 2;
                } else if (arr[i] < 50 && arr[i] % 2 != 0) {
                    arr[i] = (arr[i] * 2) + 1;
                } else {
                    count++;
                }
            }
            answer++;
        }
        return answer - 1;
    }
}

 

아 이 문제 쉬운 거 같으면서도 헷갈려서 머리 터질 뻔 했다...

분명히 맞게 풀었는데도 답이 5가 아니라 4가 나와서 하루종일 고민하다가 그냥 구글링의 도움을 받았다.

 

우선 count라는 변수를 만든다. 문제의 조건에 나왔던 원소가 50보다 크고 짝수거나, 원소가 50보다 작고 홀수인 경우 외에는 count를 증가시킨다. 이 count는 while문에서도 사용되는데 전체 배열의 길이보다 작을 때까지 반복된다.

count 변수가 전체 배열 길이보다 작다는 것은 아직 조건에 만족하는 원소가 존재한다는 의미이다.

만약 count 변수가 전체 배열 길이보다 크거나 같아지면 조건에 맞는 원소가 더 이상 존재하지 않는 것으로 간주하고 반복을 종료한다.

 

그리고 반복이 한 번 실행될 때마다 answer을 1 증가시킨다.

return문에서 answer-1을 하는 이유는 배열의 모든 요소가 조건을 만족하는 경우에도 우선 반복문이 한 번 더 실행되기 때문에 마지막에 -1을 해줘야 올바른 answer을 반환할 수 있다.

 

저작자표시 비영리 변경금지
'알고리즘' 카테고리의 다른 글
  • [프로그래머스] 세 개의 구분자 - JAVA
  • [프로그래머스] x 사이의 개수 - JAVA
  • [프로그래머스] 배열 만들기 2 - JAVA
  • [프로그래머스] 수열과 구간 쿼리 2 - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    html
    HTTP
    jsp
    spring
    Java
    알고리즘
    백준
    자바스크립트
    게시판만들기
    프로그래머스
    변수
    데이터베이스
    MVC
    스프링
    김영한
    최주호
    JPA
    다형성
    생성자
    성능최적화
    객체
    의존성주입
    javascript
    sql
    Database
    자바
    Spring Security
    DB
    Security
    Swift
  • hELLO· Designed By정상우.v4.10.0
뚜비
[프로그래머스] 조건에 맞게 수열 반환하기 2 - JAVA
상단으로

티스토리툴바