본문 바로가기
  • Adillete
【스터디노트】/▷TIL

코테 스터디 66일차 TIL + 오늘의 학습 키워드 행렬 덧셈

by 아딜렛 2025. 10. 20.


- 오늘의 학습 키워드 행렬 덧셈

- 공부한 내용 본인의 언어로 정리하기

 

이중 for문으로 받아내는거 까지 생각해냄

n,m으로 나누어서 생각해내고 이정도 까지는 생각함 

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N= sc.nextInt();
    int M = sc.nextInt();
    int[][] A = new int[100][100];
    int[][] B = new int[100][100];

    for(int i=0; i<N; i++){
      for(int j=0; j<M; j++){
        A = sc.nextInt();


        int result= A[i][j]+B[i][j];
        System.out.println(result);
      }
    }
  }

 

수도 코드

1. N과 M을 입력 받는다.
2. 행렬 A를 저장할 2차원 배열을 새ㅣㅇ성한다.
N개의 행에 대해 반복한다.
M개의 원소를 입력받아서 저장한다.

3. 행렬 B를 저장할 2차원 배열을 생성한다.
N개의 행에 대해 반복한다.
M개의 원소를 입력받아서 저장하낟.

4. 결과 행렬 생성 및 출력 
- N개의 행에 대해 반복한다. 
M 개의 열에 대해 반복: 
- 결과[i][j] = A[i][j] + B[i][j]

 




- 오늘의 회고
  - 어떤 문제가 있었고, 나는 어떤 시도를 했는지

각 행렬 안에 숫자를 직접 입력해야하는데 이거를 못찾음

 


행렬에 입력하는거, 최댓값 찾는거 까지는 풀었음 

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int max=0;
    int[][] A= new int[9][9];
    //행렬에 입력
    for(int i=0; i<9;i++){
      for(int j=0; j>9; j++){
        A[i][j]= sc.nextInt();
      }
    }

    //최댓값 찾기

    for(int i=0; i<9;i++){
      for(int j=0; j>9; j++){
       if(A[i][j]>max){
        System.out.println(A[i][j]);
       }
      }
    }

 

 


  - 어떻게 해결했는지

위치를 찾아야 하기때문에 max를 그냥 두는게 아니라 A[0][0] 에서 시작시켰다.

그리고 

 int maxRow = 1;
    int maxCol =1; 를 두고 최댓값 찾기 부분을 수정했다.
 for(int i=0; i<9;i++){
      for(int j=0; j>9; j++){
       if(A[i][j]>max){
        max=A[i][j];
        maxRow=i+1;
        maxCol= j+1;
        // System.out.println(A[i][j]);
       }
      }
    }
    System.out.println(max); // 첫째 줄에 최댓값 출력
    System.out.println(maxRow + " " + maxCol); // 둘째 줄에 최댓값의 위치(행 열) 출력

 


  - 무엇을 새롭게 알았는지

최댓값을 구하고 싶으면 max랑 비교하는거 까지는 알고 있었지만 위치를 구하기 위해서는 max 자체를 construct 안에 넣어서

행의 값, 열의 값을 각각 세어주어야한다.


  - 내일 학습할 것은 무엇인지
2차원 배열 세로 읽기