[프로그래머스/java/Lv.0] 이어 붙인 수

2025. 2. 2. 11:26·코테/프로그래머스 JAVA Lv.0

 

 

 

* 문제 풀이

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        String odd = "";
        String even = "";
        
        for(int i = 0; i < num_list.length; i++){
            if(num_list[i] % 2 != 0){
                odd += Integer.toString(num_list[i]);
            } else {
                even += Integer.toString(num_list[i]);
            }
        }
        answer = Integer.parseInt(odd) + Integer.parseInt(even);
        return answer;
    }
}

 

정수 -> 문자열 -> 정수 형변환을 통해 문제를 풀었다.

 

for 문을 통해 num_list 배열 요소를 확인한다. 

if 문을 통해 배열 요소가 짝수/홀수임을 확인한다.

홀수인 경우 odd에, 짝수인 경우 even에 문자열 연결되어 저장된다.

다시 int로 형변환시켜 두 수의 합을 answer로 반환.

 

 

 

* 프로그래머스 다른 풀이

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

        int even = 0;
        int odd = 0;

        for(int num : num_list) {
            if(num % 2 == 0) {
                even *= 10;
                even += num;
            } else {
                odd *= 10;
                odd += num;
            }
        }
        answer = even + odd;

        return answer;
    }
}

 

이 코드는 굳이 형변환 하지 않은 코드.

 

int even = 0; // 짝수만 모아 하나의 숫자로 만들 변수

int odd = 0;  // 홀수만 모아 하나의 숫자로 만들 변수

 

for each 문을 사용해 배열 요소를 하나씩 확인하는데   num % 2 == 0 이면 짝수, 그렇지 않으면 홀수

각 숫자를 이어붙이기 위해 10을 곱해준다.

even, odd를 더한 값을 answer에 반환.

 

 

 

⁕ 각 숫자에 10을 곱했는데 왜?

 => 숫자를 연결하기 위함!

위의 예처럼 배열이 [5, 7, 8, 3] 일 경우,

odd*= 10; 실행하면 0 * 10 = 0 / odd += num; 실행하면 0 + 5 = 5

odd *= 10; 실행하면 5 * 10 = 50 / odd += num; 실행하면 50 + 7 = 57

odd *= 10; 실행하면 57 * 10 = 570 / odd += num; 실행하면 570 + 3 = 573

 

even *= 10; 실행하면 0 * 10 = 0 / even += num; 실행하면 0 + 8 = 8

 

 

573 + 8 = 581를 answer에 반환할 수 있다.

 

 

 

10 곱하는 거 전혀 생각을 못 함. 코딩이란...

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글

[프로그래머스/java/Lv.0] 홀짝에 따라 다른 값 반환하기  (0) 2025.02.04
[프로그래머스/java/Lv.0] 두 수의 연산값 비교하기  (0) 2025.02.03
[프로그래머스/java/Lv.0] 배열의 원소만큼 추가하기  (0) 2025.02.01
[프로그래머스/java/Lv.0] 인덱스 바꾸기  (0) 2025.01.25
[프로그래머스/java/Lv.0] 더 크게 합치기  (0) 2025.01.22
'코테/프로그래머스 JAVA Lv.0' 카테고리의 다른 글
  • [프로그래머스/java/Lv.0] 홀짝에 따라 다른 값 반환하기
  • [프로그래머스/java/Lv.0] 두 수의 연산값 비교하기
  • [프로그래머스/java/Lv.0] 배열의 원소만큼 추가하기
  • [프로그래머스/java/Lv.0] 인덱스 바꾸기
amying
amying
공부해보겠슨
  • amying
    꽁꽁 얼어붙은 자바 위를 자박자박
    amying
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (332)
      • 공부 (55)
        • JAVA (17)
        • Spring (17)
        • Java Script (1)
        • React (0)
        • SQL (3)
        • DB (1)
        • CS (13)
        • 기술면접 (3)
      • Git (2)
      • 강의 (36)
        • 부스트코스: Connect On: 테크와 나를 잇.. (16)
        • 부스트코스: CS50 (20)
      • 네이버 부스트캠프 베이직 (25. 06) (0)
      • 에러 (10)
      • 코테 (205)
        • 백준 (29)
        • 프로그래머스 JAVA Lv.0 (116)
        • 프로그래머스 JAVA Lv.1 (7)
        • 프로그래머스 SQL (53)
      • 개인 프로젝트 (16)
        • 책첵 CHAEKCHECK (2)
        • 일정 관리 서비스 만들기 (0)
        • 게시판 만들기 (eclipse-JSP) (14)
      • 이것저것 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    코테
    ORACLE에러
    springbot
    CS50
    오라클에러
    알고리즘
    부스트코스강의
    업무자동화
    Java
    git명령어
    책첵개발일지
    lombok
    코딩테스트_입문
    부스트코스
    에러
    데이터연동
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
amying
[프로그래머스/java/Lv.0] 이어 붙인 수
상단으로

티스토리툴바