java 205

2588. 곱셈

어렵게 생각했다가, 나중에 답을 생각해내곤 허탈했던 기억이 있다. 요지는, 자릿수를 쉽게 추출할 수 있다면 크게 어려운 문제는 아니다. 역설적으로, 자릿수 추출에 대한 아이디어가 떠오르지 않는다면 어렵게 느껴지는 문제. import java.util.Scanner; public class Java2588 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); System.out.println(num1 * (num2%10)); System.out.println(num1 * ((num2/10)%10)); System.out.print..

오늘의 일기.

요즘 계속 피곤해서인지, 구내염이 창궐했습니다. 덕분인지 어제는 그냥 픽픽 쓰러져서, 오늘은 피곤함이 좀 가셨네요. 오늘은 조원들과 같이 밥을 먹었습니다. 앞에 조원들이 늘 식사시간이 다가오면 지도를 켜서 맛집을 찾더니만, 엄청난 맛집에서 먹게되었네요. 다만 가격이...크흠. DB에 정신을 못차리고 있습니다. 자바때는 포트란, 비쥬얼 베이직을 배웠던 프로그래밍 경험 + 백준 문제풀이로 실습하고 시간이 남아 문제를 따로 풀었는데, DB는 그런게 없어 연습량이 절대적으로 부족하다보니, 하나 배우면 뒤에 잊어먹고의 반복입니다. 오늘 수업 진도를 다 나가고, 약 2시간가량 과제가 주어졌는데, 너무나도 못풀어서 충격이 컸네요. 집에와서 씻고 밥먹고 쉬고, 다시 푸니까 왜인걸, 뭐가 틀렸는지 너무나도 잘 보였습니다..

자유주제/일기 2022.09.02

10430 : 나머지

앞선 문제보다 훨씬쉽다. 그냥 여태껏 풀어온대로 입력받아 연산값을 출력하면 된다. 심지어 연산값또한 말로 풀어쓴 것이 아닌, 자바 코드 그대로 들어있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); System.out.println((A+B)%C); System.out.println(((A%C) + (B%C))%C); System.out.println((A*B)%C); System.out.println(((A%C)..

3003 : 킹, 퀸, 룩, 비숍, 나이트, 폰

StringTokenizer ipt = new StringTokenizer(input); 뭔가 갑자기 문제난이도가 확 뛰는 느낌이었다. 이유는 Scanner를 통해 단순한 입력값만 받다가, 꽤 많은 입력값을 받고, 출력값도 그만큼 많아졌기 때문. 여기서 새로운 문법을 많이 배웠다. 1. BufferedReader 보통 버퍼링으로 많이 알고들 있을 buffer는, 데이터가 이동시 임시저장공간이라고 생각하면 편하다. Scanner의 경우 줄바꿈이나 공백을 기준으로 끊어서 입력받지만, BufferedReader는 줄바꿈으로 입력을 받는다. 또한, Scanner보다 입력받는 시간이 훨씬 절약된다. 다른 이론적 공부를 하지 않았다면, BufferedReader를 쓰는 구문을 이해하기는 쉽지 않다. 그냥 외우고 쓰..

10869. 사칙연산

앞선 사칙연산 문제의 종합선물세트. 거기에 나눗셈의 나머지까지 추가되었다. 어려운 문제도, 복잡한 문제도 아니지만, 관습적으로 복붙하는 사람들에게 주의 - 이번 나눗셈은 실수형으로 바꿔줄 필요가 없다. 몫을 구하는 문제이고, 예제 입력값에 7, 3이지만 A/B(몫) 부분은 2.33이 아닌 2로 출력되었음을 확인할 수 있다. 나머지는 A%B로 계산할 수 있다. A를 B로 나눈 나머지. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.pri..

1008. A/B

앞서 본 사칙연산 시리즈 중 마지막인 나눗셈. 나눗셈은 주의해야하는 것이, 앞선 덧셈, 뺄셈, 곱셈처럼 마지막 출력값에서 연산만 바꿔주면 해결되는 것이 아니다. 정수와 정수의 나눗셈으로 나머지가 남을 경우, 실수가 나올 수 있기 때문이다. 그런데 A, B를 정수로 받아 그대로 나누면 정수값인 몫부분만 출력되어버린다. 나머지 부분에 해당하는 소숫점은 그대로 버려버리는 문제가 있다. 이를 위해서는 2가지 해결법이 있는데, 1. 출력값을 실수로 변환한다 (Casting) 2. 처음부터 변수 A, B를 실수로 받는다. (실수로 받을경우, 실수간 나눗셈은 실수값으로 출력되므로) 두가지 풀이를 모두 해보도록 하겠다. 1. Casting import java.util.Scanner; public class Main ..