📚 학습 기록/Java 기초 & 중급

[25.03.21] "자바 2차원 배열 완벽 정리! - 프로그래머스 ‘2차원으로 만들기’ 문제 풀이"

zenjoydev 2025. 3. 21. 17:54

코딩 테스트 학습 노트

📅 학습 일자: [2025.03.21]

 

1번 문제.

📚 문제 제목: 2차원으로 만들기

🔗 문제 출처: [프로그래머스]

난이도: ⭐⭐⭐⭐

 

📌 문제 유형

- 배열 관련 문제

 

💡 문제 이해

- 입력:배열과 정수 입력.

- 출력: 배열을 정수 만큼 쪼개서 2차원 배열로 만들어 해당 배열을 반환

- 제약조건: 배열의 길이는 정수의 배수이다.

 

🔍 접근 방법

1. ai를 이용해서 문제 분석 => 검색을 통해서 2차원 배열 선언 및 관리 지식 다시 리마인드

2. 문제 분석한 방법대로 이차원 배열의 행과 열 길이를 설정 => 이중 반복문을 이용해서 외부 반복문은 행, 내부 반복문은 열의 인덱스를 이용해 값을 매개변수로 받은 배열의 값을 지정한다.

3. 디버깅이 필요하다면 Arrays.toString(배열명); 으로 가능하다.

 

핵심 코드

```java

// 주요 코드 부분

for (int i = 0; i < num_list.length / n; i++) {
    for (int j = 0; j < n; j++) {
        answer[i][j] = num_list[idx++];
    }
}

 

🚨 주의할 점

  • 2차원 배열은 그동안 많이 사용해보지도, 사용할 기회도 적었기에 매우 낯설어서 문제 분석 시부터 난감했었다.
  • 사용 분야에 따라 다르지만 보통 1차원 배열이나 라이브 러리를 사용해서 구현한다고 한다.

📝 학습 내용 정리

  • 2차원 배열 선언 및 사용 방법
  • 이중 반복문이 아닌 나누기와 나머지 연산자를 이용한 단일 반복문으로도 가능하다는걸 다른 사람의 풀이로 알아냈다!
  • 프로그래머스와 백준에도 이차원 배열을 활용한 문제가 있지만, 보통의 난이도가 아닌거 같다. 익숙해지려면 배열과 더 친해져야 할거 같다.

소요 시간

  • 문제 이해: [15 ]
  • 코드 구현: [15 ]
  • 디버깅: [ 10]

📈 성능

  • 실행시간: [ 0.3 ]ms
  • 메모리: [84.5 ]MB

✏️ 개선 사항

  • 연산자를 이용한 단일 반복문 로직!
  •  

🔄 복습 계획

  • [25.03.28 해당 문제 다시 풀고, 다음 문제 진행하기]