백준 2739번 (www.acmicpc.net/problem/2739)
첫 번째 문제는 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하는문제이다.
for반복문을 이용해서 간단히 문제라서 금방 풀 수 있었다.
처음에 틀려서 당황했다. 혹시 이거 때문에 틀렸나 해서 '*'와 '=' 앞뒤에 공백을 추가하니 통과되었다.
백준 2839번 (www.acmicpc.net/problem/2839)
이번에 풀 3문제 중에 가장 어려웠던 것 같다.
이 문제에서 주의할 점은 "상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다."는 것이다.
처음에 n을 5로 나눈 나머지가 3으로 나누어 지면 n/5+(n%5)/3이 정답이라고 생각했다. 하지만 예제 입력인 6을 입력하니, 3킬로그램 봉지 2개를 들고 갈 수 있음에도 -1이 출력되었다.
문제를 바로잡고자 만약 처음에 n을 5로 나눈 나머지가 3으로 나누어 지지 않으면 n을 3으로 먼저 나눈 후 나머지를5로 나누어 보기로했다. 그래서 6을 입력했을 때 2가 출력되었다. 하지만 그다음 11을 입력할 때 문제가 다시 생겼다. 그래서 알고리즘을 애초에 뒤집어서 완성한 코드가 아래의 것이다.
*** 5킬로그램 봉지를 우선시 하기 때문에, 최대한 5킬로봉지를 확보해야 한다. ***
1. 먼저 11을 5로 나눈다. 몫은 2, 나머지는 1이 된다.
2. 먼저 5킬로봉지를 최대한 많이 챙겼을 때 할 때 (5킬로 2봉지) 1킬로가 남는데 이게 3으로 나누어 떨어지지 않기 때문에 5킬로 두봉지로 설탕을 가져갈 수 없다. 어쩔 수 없이 5킬로 한 봉지는 포기해야 한다.
3. 몫인 2에 -1을 한 1만큼 5킬로 봉지를 챙긴다. 그럼 나머지는 6이 남는데 이번엔 3으로 나누어 떨어진다.
4. 최종적으로 5킬로 1봉지, 3킬로 2봉지, 총 3봉지를 챙기면 된다.
위의 방법을 응용하여 코드를 작성했다.
백준 10430번 (www.acmicpc.net/problem/10430)
간단한 문제이다!! A, B, C를 순서대로 입력받고 각각의 계산 결과를 출력하면 된다 ㅎㅎ
'자바 공부' 카테고리의 다른 글
this와 접근 제어자 (1) | 2021.01.31 |
---|---|
객체지향이란? / 클래스선언, 클래스 구성, 변수, 메소드 등 (2) | 2021.01.25 |
참조타입/배열(2차원배열, 다차원 배열, 가변배열) (2) | 2021.01.16 |
변수와 자료형(변수 타입, 선언, 데이터 타입, 형변환)/조건문&반복문/연산자 (2) | 2021.01.09 |
자바 공부 준비(자바 설치, 이클립스 설치, 표준 입출력) (1) | 2021.01.02 |