🗣️ 할 말 있을 때만 하는 메모
개발이 수학 머리랑 무슨 관련이 있어? 라는 생각 자주 하던 요즘이었는데
타이밍 맞춰 이런 문제를 풀라고 하시면 저 진짜 쎈수학 사 버려요...
✏️ 문제 제목
🔔 문제 설명
일반적으로 두 선분이 이루는 각도는 한 바퀴를 360도로 하여 표현합니다. 따라서 각도에 360의 배수를 더하거나 빼더라도 같은 각을 의미합니다. 예를 들면, 30도와 390도는 같은 각도입니다.
주어진 코드는 각도를 나타내는 두 정수 angle1과 angle2가 주어질 때, 이 두 각의 합을 0도 이상 360도 미만으로 출력하는 코드입니다. 코드가 올바르게 작동하도록 한 줄을 수정해 주세요.
🔔 제한사항
- 0 ≤ angle1 ≤ 5000
- 0 ≤ angle2 ≤ 5000
📄 Solution.java
👉🏻 [디버깅(Debugging) 문제 안내]
디버깅(Debugging)은 이미 완성된 코드에서 버그를 찾아 수정하는 문제 타입입니다.
1줄만 수정하여 버그를 고치세요.
2줄 이상 수정할 경우, 실행 결과에 에러 메시지가 표시됩니다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int angle1 = sc.nextInt();
int angle2 = sc.nextInt();
int sum_angle = angle1 + angle2;
System.out.println(sum_angle);
}
}
📄 입력 예시
280
485
📄 출력 예시
45
🔥 TRY #1 [실행 결과]
👉🏻 720을 뺐다고 해서 단순히 720만 빼 버린 나
👉🏻 첫 케이스는 맞는데 나머지 케이스 다 틀려서 ㅇㅁㅇ? 한 표정으로 보다 보니 조건 중 0 초과 5000 이하를 간과한 사실을 발견
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int angle1 = sc.nextInt();
int angle2 = sc.nextInt();
int sum_angle = (angle1 + angle2) - 720;
System.out.println(sum_angle);
}
}
🔥🎉 TRY #2 [실행 결과]
👉🏻 중요한 건 720을 뺀 것이 아니라 두 수의 합을 360으로 나눠 주는 것!
👉🏻 "각도에 360의 배수를 더하거나 빼더라도 같은 각을 의미"한다는 것은 몫은 의미 없고 나머지를 확인해야 한다는 뜻이라고 생각
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int angle1 = sc.nextInt();
int angle2 = sc.nextInt();
int sum_angle = (angle1 + angle2) % 360;
System.out.println(sum_angle);
}
}
👉🏻 참고 사이트
https://sugoring-it.tistory.com/113#google_vignette
자바 Java | 나머지 연산자 %: 음수 계산 규칙, 예외 처리 방법
✅ 나머지 연산자 % 두 개의 피연산자를 받아 첫 번째 피연산자를 두 번째 피연산자로 나눈 나머지 값을 반환한다. 모든 기본형 숫자 타입(int, long, float, double, short, byte)에서 % 연산자를 지원한다.
sugoring-it.tistory.com
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/340206
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr