반응형

1. 문제 번호 2903번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - 규칙을 찾는데 조금 오래 걸려서 포기함..

 

 

 

문제를 먼저 정확히 파악

 

  • 총 점 개수의 규칙성을 먼저 파악하거나 or 첫 번째 줄의 규칙성을 파악하면 쉬움!

 

// 반복회수 | 첫번째 라인의 점 | 총 개수
// 0      | 2            |  4
// 1      | 3            |  9
// 2      | 5            |  25
// 3      | 9            |  81
// 4      | 17           |  289
// 5      | 33           |  1089

 

첫 번째 라인의 점은 1, 2, 4, 8, 16 으로 증가

총 개수는 첫 번째 라인의 점의 제곱

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

  1. 초기상태 -> 1번  : 5
  2. 1번 -> 2번         : 5 + 4*2 + 3   = 16
  3. 2번 -> 3번        : 5 + 4*12 + 3  = 56
  4. 3번 -> 4번        : ??? 

즉 생성되는 검은색 점의 규칙성을 찾고자 하였음. (결과는 Fail)

 

 

 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int inputCnt = Integer.parseInt(br.readLine());
        StringBuilder st = new StringBuilder();
        int [] intAry = {25,10,5,1};

        while(inputCnt > 0){
            int inputLine = Integer.parseInt(br.readLine());

            for(int i = 0; i < 4; i++){
                int count = inputLine / intAry[i];
                st.append(count);
                st.append(" ");
                inputLine = (inputLine % intAry[i]);
            }
            st.append("\n");
            inputCnt--;
        }
        System.out.println(st);
    }
}

 

 

// Math의 클래스의 pow()메서드를 사용했다.
// Math.pow(거듭제곱할 숫자, 거듭제곱(몇제곱인지);
System.out.println((int)Math.pow(Math.pow(2, n) +1, 2));

 

 

 

- 실패 소스코드 -

 

 

 

 

 

 


4. 추가 개념

 

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 

 

 

728x90
반응형
반응형

1. 문제 번호 2720번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - Double, Float, BigDecimal 에 대해서 좀 더 깊게 알게 되었다.

 

 

 

문제를 먼저 정확히 파악

 

  • 몫과 나머지의 계산문제
    1. 예시) 124
      1. 124 ÷ 0.25 는  몫 4 나머지 0.24
      2. 0.24 ÷ 0.1  은  몫 2 나머지 0.04
      3. 0.04 ÷ 0.01 은 몫 4 나머지 0

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

 

 

 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int inputCnt = Integer.parseInt(br.readLine());
        StringBuilder st = new StringBuilder();
        int [] intAry = {25,10,5,1};

        while(inputCnt > 0){
            int inputLine = Integer.parseInt(br.readLine());

            for(int i = 0; i < 4; i++){
                int count = inputLine / intAry[i];
                st.append(count);
                st.append(" ");
                inputLine = (inputLine % intAry[i]);
            }
            st.append("\n");
            inputCnt--;
        }
        System.out.println(st);
    }
}

 

 

 

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int inputCnt = Integer.parseInt(br.readLine());
        StringBuilder st = new StringBuilder();
        double [] intAry = {0.25, 0.10, 0.05, 0.01};
        // float [] intAry = {0.25f,0.10f,0.05f,0.01f}; //f 필수!!!

        while(inputCnt > 0){
            /* (int / int는 정수라서 100.0 double 타입의 리터럴로 나눠줘야함 */
            double inputLine = Integer.parseInt(br.readLine()) / 100.0;

            for(int i = 0; i < 4; i++){
                intputLine = roundFunc(inputLine, 3); //소수점 이하 3째자로 반올림
                int count = (int) (inputLine / intAry[i]);
                st.append(count).append(" ");
                inputLine = (inputLine % intAry[i]);
            }
            st.append("\n");
            inputCnt--;
        }
        System.out.println(st);
    }
    private static double roundFunc(double value, int places){
        if(places < 0) throw new IllegalArgumentException();

        BigDecimal bd = BigDecimal.valueOf(value);
        bd = bd.setScale(places, RoundingMode.HALF_UP);
        return bd.doubleValue();
    }
}

 

 

 

 

- 실패 소스코드 -

 

 

 

 

 

 


4. 추가 개념

 

double [] intAry = {0.25, 0.10, 0.05, 0.01};

float [] intAry = {0.25f,0.10f,0.05f,0.01f}; //f 필수!!!

 

  • 변수의 Type이 double이여도 int ÷ int 는 정수로 계산되어진다.
double inputLine = Integer.parseInt(br.readLine()) / 100.0;

 

 

 

float와 double의 문제점

계산을 하는 와중에 다음과 같은 현상을 파악했다.

double a = 10.1;
double b = 10.1;

System.out.print(a+b); //20.2000000003

 

 

내가 원하는 결과값은 20.2인데 반올림 처리해서 사용해야하나?

 

 

1.24를 소수점 2째 자리에서 반올림처리해서 사용하는 경우를 예를 들어보겠다.

double inputLine = 1.24;
double [] intAry = {0.25,0.10,0.05,0.01};

for(int i = 0; i < 4; i++){
    int count = (int) (inputLine / intAry[i]);
    inputLine = (inputLine % intAry[i]);
}

count = 4 
inputLine = 0.24

count = 2
inputLine = 0.03999999999999998

 

이렇게 반복적으로 몫과 나머지를 구해야 할때 원하지 않는 결과 확인했다.

 

그래서 BigDecimal을 알게 되었다.!!!

 

BigDecimal 의 출현

고정소수점과 부동소수점

고정소수점 방식

  • 정수부와 소수부가 자릿수가 제한적이라서 넓은 범위의 실수르 표현하기 어렵다.

예를 들어 7.75 실수를 2진수로 변환하면 111.11이 되는데 이를 각각 지수부(정수부), 소수부로 담아 표현한다.

 

부동소수점 방식

  • 유연한 자릿수를 가지고 있으며, 2진수로 저장되는 특성 때문에 정확한 수를 표현하지 못한다.

예를 들어 7.75 실수를 0.0775 * 10^2로 변경하여 지수부에는 2, 가수부에는 0.0775 를 담는다.

여기서 문제가 발생하는데 마지막 5에서 무한적인 소수점이 생겨난다.

double과 float는 대표적인 부동소수점 방식이다.

 

 

BigDecimal 특징

  • 불변의 특징을 가지고 있어 객체 간의 연산마다 새로운 객체를 생성하여 느리다. 다만 부동소수점의 문제를 보완하기 때문에 필수적이다.
  • 정수형인 unscaled value와 , 소수점 영역인 scale(32bit)
    예를 들어 3.14의 경우 unscaled value는 314, scale은 2
  • BigDecimal에 데이터 저장할때는 반드시 정확한 값을 넣어야 한다.
    예를 들어 new BigDecimal(1.12) 이런건 안되고 new BigDecimal("1.12") 와 같이 넣어줘야 함.

 

기타 관련 메서드들이나 연산들은 아래 참조 블로그를 확인 바랍니다.

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

https://dev.gmarket.com/75

 

 

 

 

 



728x90
반응형
반응형

1. 문제 번호 11005번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - 나에게는 역대급 난이도

 

 

 

문제를 먼저 정확히 파악

 

 - 진수라고 하는 것은 한 자리에서 표현할 수 있는 숫자

    즉 2진수는 1자리에서 표현할 수 있는 최대값이 0~1

        8진수는 1자리에서 표현할 수 있는 최대값이 0~7

       10진수는 1자리에서 표현할 수 있는 최대값이 0~9

 

  •    2진수 - > 8진수 변환 방법 
      (작은 것에서 큰 것으로  변환 이라고 이해 하세요. 이것만 이해하면 2진수 -> N진수 모두 가능 )
    1. 배경) 한 자리에 0~1로만 표현 가능한 세상에서 0~7까지 사용하여 표현할 수 있다.
      그렇기 때문에 2진수 3자리를 묶어서 1진수로 표현이 가능해졌다. (8진수 = 2^3)
    2. 예시) 1101111  가 2진수 
      1. 001 101 111  =   1   5   7
  •  8진수 -> 2진수 변환 방법 (큰 것에서 작은 것으로 변환)
    1. 배경) 한 자리에 0~7까지 표현 가능한 세상에서 0~1까지로 밖에 표현할 수 없다.
      그렇기 때문에 8진수 1자리를 묶어서 3자리로 표현해야 한다.
    2. 예시) 157 가 8진수
      1. 1을 표현하려고 3자리로 묶인 001, 5를 표현하려고 3자리로 묶은 101, 7을 표현하려고 3자리로 묶은 111 
  • N진수 -> 10진수 변환 (숫자 체계의 기본 원칙)
    1. 예시) 157가 8진수
      1. (1*8^2) + (5*8^1) + (7*8^0) = 111 (64 + 40 + 7)

 

  • N진수 -> 10진수 변환 방법 (숫자 체계의 기본 원칙)
    1. 예시) ZZZZZ 36진수 (36진수는 한 자리에서 0~35까지 표현 가능)
      1. Z는 35 이다. (A는 10이다.)
      2. ZZ는 (35*36^1)+(35*36^0) 이다. =1295
        1. Z9는 (35*36^1) + (9*36^0) = 1269이다.
      3. Z는 ASCII코드 90이다. 이유는 A (ASCII코드 65) , 26개 (알파벳 총개수) _ A에서 25만큼 떨어져 있다.
      4. Z - x = 35 이다.  x는 55이다.
    2. 즉 문자는 -55를 하면 10진수의 숫자로 표현이 가능하다.
    3. 0번째 자리부터 N번째 자리까지 36의 ^N 을 해줘야 한다.

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

A는 ASCII 65, 0 은 ASCII 48 

 

 

 

제일제일 어렵다.. 가장 오래걸리고 진수끼리 변환하는거 나는 너무 어렵다.

계산은 쉽지 근데 내가 막 바꿔가면서 계속 연습해보다보면 뭐가뭐였는지도 모르겠어 🤩 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder remainder = new StringBuilder();
        
        int N = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        while (N > 0) {
            int temp = N % B;
            if (temp >= 10) {
                char charTemp = (char) (temp + 55);
                remainder.insert(0, charTemp);   
            } else {
                remainder.insert(0, temp); 
            }
            N = N / B;
        }
        
        System.out.println(remainder);
    }
}

 

 

 

 

 

 

 

- 실패 소스코드 -

 

 

 

 

 

 


4. 추가 개념

 

 

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 

 

728x90
반응형
반응형

1. 문제 번호 2745번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - 나에게는 역대급 난이도

 

 

 

문제를 먼저 정확히 파악

 

 - 진수라고 하는 것은 한 자리에서 표현할 수 있는 숫자

    즉 2진수는 1자리에서 표현할 수 있는 최대값이 0~1

        8진수는 1자리에서 표현할 수 있는 최대값이 0~7

       10진수는 1자리에서 표현할 수 있는 최대값이 0~9

 

  •    2진수 - > 8진수 변환 방법
      (작은 것에서 큰 것으로  변환 이라고 이해 하세요. 이것만 이해하면 2진수 -> N진수 모두 가능 )
    1. 배경) 한 자리에 0~1로만 표현 가능한 세상에서 0~7까지 사용하여 표현할 수 있다.
      그렇기 때문에 2진수 3자리를 묶어서 1진수로 표현이 가능해졌다. (8진수 = 2^3)
    2. 예시) 1101111  가 2진수 
      1. 001 101 111  =   1   5   7
  •  8진수 -> 2진수 변환 방법 (큰 것에서 작은 것으로 변환)
    1. 배경) 한 자리에 0~7까지 표현 가능한 세상에서 0~1까지로 밖에 표현할 수 없다.
      그렇기 때문에 8진수 1자리를 묶어서 3자리로 표현해야 한다.
    2. 예시) 157 가 8진수
      1. 1을 표현하려고 3자리로 묶인 001, 5를 표현하려고 3자리로 묶은 101, 7을 표현하려고 3자리로 묶은 111 
  • N진수 -> 10진수 변환 (숫자 체계의 기본 원칙)
    1. 예시) 157가 8진수
      1. (1*8^2) + (5*8^1) + (7*8^0) = 111 (64 + 40 + 7)

 

  • N진수 -> 10진수 변환 방법 (숫자 체계의 기본 원칙)
    1. 예시) ZZZZZ 36진수 (36진수는 한 자리에서 0~35까지 표현 가능)
      1. Z는 35 이다. (A는 10이다.)
      2. ZZ는 (35*36^1)+(35*36^0) 이다. =1295
        1. Z9는 (35*36^1) + (9*36^0) = 1269이다.
      3. Z는 ASCII코드 90이다. 이유는 A (ASCII코드 65) , 26개 (알파벳 총개수) _ A에서 25만큼 떨어져 있다.
      4. Z - x = 35 이다.  x는 55이다.
    2. 즉 문자는 -55를 하면 10진수의 숫자로 표현이 가능하다.
    3. 0번째 자리부터 N번째 자리까지 36의 ^N 을 해줘야 한다.

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

A는 ASCII 65, 0 은 ASCII 48 

 

 

 

제일제일 어렵다.. 가장 오래걸리고 진수끼리 변환하는거 나는 너무 어렵다.

계산은 쉽지 근데 내가 막 바꿔가면서 계속 연습해보다보면 뭐가뭐였는지도 모르겠어 🤩 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        String N = st.nextToken(); //문자
        int B = Integer.parseInt(st.nextToken()); //진수 표현

        int tmp = 1;
        int result = 0;

        for(int i = N.length()-1; i >= 0 ; i--){
            char c = N.charAt(i);
            if(c >= 'A' && c <= 'Z'){
                result += (c-55) * tmp;
            } else {
                result += (c-48) * tmp;
            }
            tmp *= B;
        }
        System.out.println(result);
    }
}

 

 

 

 

 

 

 

- 실패 소스코드 -

 

 

 

 

 

 


4. 추가 개념

 

 

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 



728x90
반응형
반응형

1. 문제 번호 2563번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - 기본에 충실하게 푼다 !

 

 

문제를 먼저 정확히 파악

 

 - 100x100 판 존재

 - 0,0 에 1장 10,10에 1장 붙이면 총 면적이 200 이다. (가로x세로)

 - 0,0 에 1장 1,1에 1장 붙이면 총 면적이 110이다.

   설명 : 첫번째 종이가 10x10 으로 100 + 두번째 종이가 (1,1 ~10,10까지 첫 번째 종이와 중복) 10,10~11,11까지 면적 10

 

 

 

 

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

좌표로 생각하며 길이를 계산하려고 하지말고 1로 마킹한다고 생각

  1. 2차원 배열에 반복문을 돌면서 1로 색칠
  2. 100x100반복문 돌면서 더하기만 하면됌 
    1. 근데 이렇게 하면 비효율적이니 1로 색칠할때 +1 씩 해버리면 끝~

 

 

 

 

 

아니 보자마자 바로 실버문제 풀어버리니 겁나 뿌듯하네 ? 🤩

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int inputLineCnt = Integer.parseInt(br.readLine());
        StringTokenizer st;

        int maxRows = 100;
        int maxColumns = 100;
        int width = 10;
        int heigh = 10;
        char [][] matrix = new char[maxRows][maxColumns];
        int totalWidth = 0;

        for(int i = 0; i < inputLineCnt; i++){
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());

            for(int from = x; from < x+width; from++){
                for(int to = y; to < y+heigh; to++){
                    if(matrix[from][to] != 1){
                        matrix[from][to] = 1;
                        totalWidth += 1;
                    }
                }
            }
        }
        System.out.println(totalWidth);
    }
}

 

 

 

 

 

 

 

- 실패 소스코드 -

 

 

 

 

 

 


4. 추가 개념

 

 

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 

 

728x90
반응형
반응형

1. 문제 번호 10798번


 

 

 

2. 문제 풀이 

 

한줄 평가

 - 기본에 충실하게 푼다 !

 

 

문제를 먼저 정확히 파악

 

 - 이 블로그를 보는 사람은 틀린 이유를 못 찾아서 보실 확률이 높다.

   극단적인 값을 항상 생각하고 풀것

123456789abcde
fg
h
i
j

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

 

  1. 15x5 행렬을 입력으로 받을때 거꾸로 2차원 배열에 넣어버린다.
  2. 그 다음에 출력

 

 

 

 

Char 2차원 배열 만든 결과(메모리 14300KB, 128ms) vs String 2차원 배열 만든 결과(메모리 14288KB, 124ms) 

 

 

난 이런게 오래걸리네?ㄷㄷ😅

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String inputLine = null;

        int rows = 5;
        int columns = 15;
        String [][] matrix = new String[rows][columns];
        String [][] matrix_copy = new String[columns][rows];

        int currentRow = 0;
        
        while( (inputLine=br.readLine())!=null){
            for(int j = 0; j < inputLine.length(); j++){
                matrix[currentRow][j] = String.valueOf(inputLine.charAt(j));
                matrix_copy[j][currentRow] = String.valueOf(inputLine.charAt(j));
            }
            currentRow++;
            if(currentRow >= rows){
                break;
            }
        }

        for(int i = 0; i < matrix_copy.length; i++){
            for(int j = 0; j < matrix_copy[i].length; j++){
                if(matrix_copy[i][j]!=null){
                    sb.append(matrix_copy[i][j]);    
                }
            }
        }
        
        System.out.print(sb.toString());
        
    }
}

 

 

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String inputLine = null;

        int rows = 5;
        int columns = 15;
        char [][] matrix = new char[columns][rows];

        // Initialize matrix with space character
        for (int i = 0; i < columns; i++) {
            for (int j = 0; j < rows; j++) {
            matrix[i][j] = ' ';
            }
        }

        int currentRow = 0;
        while( (inputLine=br.readLine())!=null){
            for(int j = 0; j < inputLine.length(); j++){
                matrix[j][currentRow] = inputLine.charAt(j);
            }
            currentRow++;
            if(currentRow >= rows){
                break;
            }
        }
        for(int i = 0; i < matrix.length; i++){
            for(int j = 0; j < matrix[i].length; j++){
                if(matrix[i][j] != ' '){
                    sb.append(matrix[i][j]);    
                }
            }
        }
        System.out.print(sb.toString());
    }
}

 

- 실패 소스코드 -

 

 


4. 추가 개념

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 



728x90
반응형
반응형

1. 문제 번호 2566번


 

 

 

2. 문제 풀이 

 

 

 

한줄 평가

 - 기본에 충실하게 푼다 !

 

 

 

문제를 먼저 정확히 파악

 

 - 이 블로그를 보는 사람은 틀린 이유를 못 찾아서 보실 확률이 높다.

   아래 데이터 삽입시 1,1~9,9 사이에 임의의 값 출력시 성공

0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

 

  1. 한 줄씩 최대 값을 찾아서 행렬을 뽑아놓고 계속 비교한다.

 

  1. 한 줄씩 내림차순,오름차순 정렬하여 같은 열 전체 비교도 방법 (ETC...)

 

 

 

 

 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int in_h = 9;
        int in_l = 9;
        int out_h = 1;
        int out_l = 1;
        int maxValue = 0;
            
        for(int i = 0; i < in_h; i++){
            String inputLine = br.readLine();
            String[] stringNumbers = inputLine.split(" ");
            int [] intNumbers = new int[stringNumbers.length];
            
            for(int k = 0; k < stringNumbers.length; k++){
                intNumbers[k] = Integer.parseInt(stringNumbers[k]);
            }
            
            for(int j = 0; j < in_l; j++){
                if (maxValue < intNumbers[j]){
                    maxValue = Math.max(intNumbers[j],maxValue);
                    out_h = i+1;
                    out_l = j+1;
                }
            }
        }

        System.out.println(maxValue);
        System.out.print(out_h + " " + out_l);
        
    }
}

 

 

 

- 실패 소스코드 -

 

 


4. 추가 개념

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 

 

728x90
반응형
반응형

1. 문제 번호 2738번


 

 

 

2. 문제 풀이 

 

 

 

한줄 평가

 - 기본에 충실하게 !!! 

 

 

 

문제를 먼저 정확히 파악

 

 - 두 행렬 A,B 가 있을때, 두 행렬 n*m을 더하는 프로그램 작성

  ( 오른손으로 왼쪽부터 오른쪽으로 부채를 그리면서 "행~렬 !!" 외치면서 외우면 잘 외워짐 ㅋㅋㅋㅋ

    가로는 행이고 세로는 열이니깐 : )  

 )

 

 

나의 문제풀이 방식 및 순서

 

 * 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *

 

 

 

  1.  

 

 

 

 


3. 소스 인증

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int h = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());

        int[][] a = new int [h][l];
        int[][] b = new int [h][l];
        
        for(int i = 0; i < h; i++){
            st = new StringTokenizer(br.readLine());
            for(int j = 0; j < l; j++){
                a[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        for(int i = 0; i < h; i++){
            st = new StringTokenizer(br.readLine());
            for(int j = 0; j < l; j++){
                b[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        for(int i = 0; i < h; i++){
            for(int j = 0; j < l; j++){
                System.out.print(a[i][j] + b[i][j]);
                System.out.print(" ");
            }
            System.out.println();
        }
        
    }
}

 

 

 

- 실패 소스코드 -

 

 


4. 추가 개념

 

 

 

 

 

 

 


5. 참조 블로그


 

불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.

 


 

 

 

 

 

 

 



728x90
반응형

+ Recent posts