Jaeyoung Kim
나의 개발 공부 일지
Jaeyoung Kim
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • WIL👨‍🏫 (16)
    • 🤖Algorithm (29)
    • 🖥CS (20)
      • 기술면접대비🔎 (10)
    • ✍️개발로그 (10)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기
  • 설정

공지사항

인기 글

태그

  • 회고록
  • 백준
  • 프로그래머스
  • 트랜잭션
  • N-gram parser
  • Java
  • 백준2920
  • API
  • querydsl
  • til
  • 자바
  • sql
  • rest
  • HTTP
  • WIL
  • 개발로그
  • 항해99
  • SQLD
  • 데이터자료구조
  • transaction

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Jaeyoung Kim

나의 개발 공부 일지

[프로그래머스] x만큼 간격이 있는 n개의 숫자 Java
🤖Algorithm

[프로그래머스] x만큼 간격이 있는 n개의 숫자 Java

2022. 7. 18. 12:38
728x90

x만큼 간격이 있는 n개의 숫자


문제설명

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.


제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

입출력 예

x n answer
2 5 [2, 4, 6, 8, 10]
4 3 [4, 8, 12]
-4 2 [-4, -8]

기본코드

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = {};
        return answer;
    }
}

문제풀이

아직까지 내가 배열을 사용하는 것이 익숙하지 않다는 것과 오류에 해결 능력이 미흡해서 잠깐 헤매긴하였으나

복잡한 문제는 아니었다.

 

길이 n의 long 배열 answer의 값은 각 행 당 x*n이다.

for문으로 간단하게 해결 가능하였으나, 부끄럽게도 기초적인 배열 선언에서 다소 지체되었다.

 

이쯤에서 다시 한 번 정리해보는 배열 선언 방법

int[] sum = new int[n]; // n은 배열 sum의 길이

 

추가로 배열을 할당하는 방법은

sum[0] = 1;  // 배열 0번째 index에 값 1 할당

sum[1] = 2;  // 배열 1번째 index에 값 2 할당

...

정말 간단하다. 매번 까먹는다는 사실이 부끄러울 따름이다. 이번 실수를 끝으로 제발 잊어버리지 말길

 

그 후 for문을 사용하여 아래와 같이 코드를 작성하였고 문제 해결을 완료한줄 알았으나 끝에 가서 오류가 발생하였다.

class Solution {
    public long[] solution(int x, int n) {
        long[] solution = new long[n];
        for(int i = 0; i < solution.length; i++){
            solution[i] += x*(i+1);
        }
        System.out.println(solution);
        return solution;
    }
}

 

테스트 13, 14만 실패하였다. 원인 파악을 스스로 하지 못해 질문글을 참고하였다.

문제의 원인은 배열 solution의 i번째 index 값을 할당해주는 부분

solution[i] += x*(i+1); 

이었다.

 

배열 solution은 long 배열이었으나 x와 n은 int로 선언되어있었기에 둘 중 하나라도 (long)으로 타입을 바꿔주는 것으로

해결 가능하였다.


Solution.java

class Solution {
    public long[] solution(int x, int n) {
        long[] solution = new long[n];
        for(int i = 0; i < solution.length; i++){
            solution[i] += (long)x*(i+1);
        }
        System.out.println(solution);
        return solution;
    }
}
728x90

'🤖Algorithm' 카테고리의 다른 글

[프로그래머스] 내적 Java  (0) 2022.07.18
[프로그래머스] 부족한 금액 계산하기 Java  (0) 2022.07.18
[프로그래머스] 행렬의 덧셈 Java  (0) 2022.07.18
[프로그래머스] 핸드폰 번호 가리기 Java  (0) 2022.07.18
[프로그래머스] 없는 숫자 더하기 Java  (0) 2022.07.16
    '🤖Algorithm' 카테고리의 다른 글
    • [프로그래머스] 내적 Java
    • [프로그래머스] 부족한 금액 계산하기 Java
    • [프로그래머스] 행렬의 덧셈 Java
    • [프로그래머스] 핸드폰 번호 가리기 Java
    Jaeyoung Kim
    Jaeyoung Kim
    보다 안정적인 코드 구현을 꿈꾸는 백엔드 개발자 지망생

    티스토리툴바