백준 1단계 입출력과 사칙연산(6 ~ 11번 문제)
6번과 7번 문제의 경우 5번 문제인 두 수의 합 구하는 것에서 연산자만 -로, *로 바꿔주면 해결.
8번 문제의 경우 두 수를 입력받아 나눗셈 연산.
나눗셈의 결과가 딱 정수로 나누어 떨어질 수도 있지만 1 / 3의 경우 0.333333333..으로 나올 수도 있음.
따라서 double형 변수로 선언해주고 nextDouble()로 입력받기.
9번 문제의 경우 두 수를 입력받아 사칙연산 및 나머지 출력하는 문제.
10번 문제의 경우 % 연산자와 관련된 문제.
(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
직접 코드로 확인한 결과 같은데 문자로 생각이 어렵다면 숫자를 임의로 집어넣어 보면 금방 이해가 가능하다.
해결 : 두번째 수를 /, % 연산자를 활용하여 자리별로 분리하고 그것을 첫 번째 수랑 곱해서 (3), (4), (5)를 출력.
(6)의 경우 (3) ~ (5)에 *, + 연산자를 적절히 활용하여 출력.
Scanner input = new Scanner(System. in);
int num1, num2, t1, t2, t3;
num1 = input.nextInt();
num2 = input.nextInt();
t1 = num1 * (num2 % 100 % 10);
t2 = num1 * (num2 / 10 % 10);
t3 = num1 * (num2 / 100);
System.out.println(t1 + "\n" + t2 + "\n" + t3);
System.out.println(t1 + t2 * 10 + t3 * 100);
프로그래머스 코딩테스트 연습 - 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
처음 배열 초기화 시 arr1의 행의 길이와 arr1[0]열의 길이로 초기화하는 것을 생각하는데 시간이 좀 걸렸다..
그 다음은 이중 for문으로 각 배열의 length만큼 돌려서 합을 구해주면 된다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for (int i = 0; i < arr1.length; i ++) {
for (int j = 0; j < arr1[i].length; j ++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
'Algorithm' 카테고리의 다른 글
2021.07.20 (0) | 2021.07.20 |
---|---|
2021.07.19 (0) | 2021.07.19 |
2021.07.16 (0) | 2021.07.16 |
2021.07.15 (0) | 2021.07.15 |
2021.07.12 (0) | 2021.07.12 |