2021.12.10.

직사각형 별 찍기

초기 코드

import java.util.Scanner;

class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(a + b);
    }
}

완성한 코드

import java.util.Scanner;

class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        /* 수정한 부분 */
        for (int i = 0; i < b; i++) {
            for (int j = 0; j < a; j++) {
                System.out.print("*");
            }
            System.out.println();
        }        
    }
}

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

초기 코드

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

헤맸던 지점

  1. long 타입이 뭐더라? 음수 포함이라서 그런가?
  2. 배열에 값 추가하는 방법이 뭐더라?

완성한 코드

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        long temp = x;
        
        for (int i = 0; i < n; i++) {
            answer[i] = temp * (i+1);
        }
        return answer;
    }
}

행렬의 덧셈

초기 코드

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = {};
        
        return answer;
    }
}

헤맸던 지점

  1. 배열 안의 배열은 array length가 어떻게 측정되더라? 겉의 배열이랑 안의 배열 길이를 쓰면 될 것 같은데 방법이 뭐가 있을까
    --> arr1[0].length 이런 식으로 활용하면 되는 거였음.

처음에 작성해본 코드

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2.length];
        
        for (int i = 0; i < arr1.length; i++) {
            for (int j= 0; j < arr1.length; j++){
                answer[i][j] = arr1[i][j] + arr2[i][j];
/* 두 겹짜리 배열이니까 이렇게 하면 되지 않을까? 했지만 
애초에 answer을 선언할 때 배열의 크기에서 오류가 있음.*/
            }
        }
        
        return answer;
    }
}

완성한 코드

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr1[0].length];
        /* arr1 안에서도 겉이랑 안의 length를 따로 쓸 수 있구나 */
        
        for (int i = 0; i < arr1.length; i++) {
            for (int j= 0; j < arr1[0].length; j++){
                answer[i][j] = arr1[i][j] + arr2[i][j];
                
            }
        }
        
        return answer;
    }
}

0개의 댓글