이 영역을 누르면 첫 페이지로 이동
codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

페이지 맨 위로 올라가기

codesche's blog

[프로그래머스]콜라츠 추측

  • 2022.12.13 01:13
  • Algorithm/프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/12943

 

프로그래머스

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

programmers.co.kr

1. 문제

콜라츠 추측이란 문제인데 짝수와 홀수의 특징을 구분하여 주어진 수를 1이 되도록 해줘야 하는 문제입니다.

 

2. 풀이

어려운 문제는 아니지만 626631을 주어진 계산법대로 적용할 경우 오버플로우가 발생하여 결과값이 -1이 아닌

488로 나오는 경우가 발생하니 주의해야 합니다. 이 경우엔 형변환을 하여 해당 변수가 정상적으로 계산이 되도록

해주는 작업을 해줘야 합니다.

 

*소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
public class Solution {
    public int solution(int num) {
        int answer = 0;
        long n = num;
 
        if (n == 1) {
            return 0;
        }
 
        while (n != 1) {
            if (Math.abs(n) % 2 == 0) {
                n = Math.abs(n / 2);
            } else if (Math.abs(n) % 2 != 0) {
                n = (Math.abs(n * 3)) + 1;
            }
 
            answer++;
 
            if (answer > 500) {
                return -1;
            }
        }
 
        return answer;
    }
}
 
Colored by Color Scripter
cs

3. 느낀 점 및 추가사항

문제에 나온 조건대로 풀면 그리 어려운 문제는 아니었으나 예외 케이스가 발생하는 부분을 처리하는 과정에서

조금 애먹은 문제였다. 조건은 맞는데 답이 이상하게 나온다면 오버플로우를 꼭 고려해야 한다.

 

 

'Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스]-최소 직사각형  (0) 2022.12.28
[프로그래머스]부족한 금액 계산하기  (0) 2022.12.27
[프로그래머스]2016년  (0) 2022.12.23
[프로그래머스]자연수 뒤집어 배열로 만들기  (0) 2022.12.08
[프로그래머스]가운데 글자 가져오기  (0) 2022.12.08

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [프로그래머스]부족한 금액 계산하기

    [프로그래머스]부족한 금액 계산하기

    2022.12.27
  • [프로그래머스]2016년

    [프로그래머스]2016년

    2022.12.23
  • [프로그래머스]자연수 뒤집어 배열로 만들기

    [프로그래머스]자연수 뒤집어 배열로 만들기

    2022.12.08
  • [프로그래머스]가운데 글자 가져오기

    [프로그래머스]가운데 글자 가져오기

    2022.12.08
다른 글 더 둘러보기

정보

codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

  • codesche's blog의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (76)
    • Algorithm (15)
      • 백준 (3)
      • 프로그래머스 (10)
      • inflearn 알고리즘(Java) (2)
    • 블로그소개 (1)
    • Back-End (11)
      • Java (10)
      • SpringBoot (1)
    • Database (2)
      • MySQL (0)
      • MariaDB (1)
      • Redis (0)
      • 개념, 이론 (1)
    • Front-End (0)
      • html, css, javascript (0)
    • Git (2)
    • 알고리즘 지식 (11)
      • 자료구조 (11)
    • Study Cafe (21)
      • 기술면접 (6)
      • Clean Code 스터디 (14)
      • CS 스터디 (0)
      • 개발용어 (1)
    • 주간 에세이 (10)
    • DevOps (3)
      • 배포, Front&Back 연동 (1)
      • AWS (0)
      • Docker (1)
      • 이론 (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 주간에세이
  • 자바 기초
  • git commit
  • 클린코드
  • 개발자 현실
  • 자바 변수
  • 자료구조
  • java

나의 외부 링크

정보

The Code의 codesche's blog

codesche's blog

The Code

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © The Code. Designed by Fraccino.

티스토리툴바