https://www.acmicpc.net/problem/19532 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 브루트 포스를 이용하면 간단하다. n = 2000 이고 for 반복문을 두 번 돌면 O(n^2) 이니 시간초과는 걱정하지 않아도 된다. 그냥 x 와 y 를 -999 부터 999 까지 돌리자. import java.io.*; import java.util.StringTokenizer; publi..
[JAVA]/자바[JAVA] 백준
https://www.acmicpc.net/problem/10101 10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 간단하다. 세 각을 받아준다음 세 각의 관계를 조건문으로 분기하여 결과를 출력해주면 된다. 이때 중요한점은 세 각이 모두 같은 경우를 먼저 분기해주고, 두 각이 같은 경우를 따져야한다는 점이다. 만약 두 각이 같은 경우를 먼저 분기한다면, 세 각이 같은 경우는 모두 두 각이 같은 경우에도 속하기 때문에, 결국 모두 두 각이 같은 경우에 들어가게된다. 조건문의 분기지점이 중요한 문제였다. import java.io.*; public class Main { public sta..
https://www.acmicpc.net/problem/9063 9063번: 대지 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 간단하다. 각 점들의 좌표를 받고, 각 점들 중 가장 작은 x 좌표값과 가장 큰 x 좌표값의 차이가 임씨가 받을 수 있는 대지의 가로 너비이다. 마찬가지로 각 점들 중 가장 작은 y 좌표값과 가장 큰 y 좌표값의 차이가 대지의 세로 너비이다. 그렇다면, 대지의 면적을 계산하기 위해서 좌표를 받는동안 x 좌표와 y 좌표의 최대와 최소를 찾으면 된다. 그 후, 가로 너비와 세로 너비를..
https://www.acmicpc.net/problem/15894 15894번: 수학은 체육과목 입니다 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않고 근성과 체력을 사용해 문제를 푼다. 지난 시험에서 www.acmicpc.net 형석이가 말한대로 이 문제에는 어떤 수학적인 트릭이 숨어있을것이다. n = 1 일 때, 결과는 4이다. n = 2 일 때, 결과는 8이다. ... 이렇게 일일히 하면 성원이와 다를게 뭔가. 문제를 분석해보자. n = k 일 때의 결과 값을 x 라고 해보자, n = k+1 일 때의 결과 값은 무엇일까? n이 k 에서 k+1 로 증가하면서 어떤 변화가 있었는지 알아보자. 증가되는 요인 (+)..
https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net -1 이 나오면 무한 루프를 빠져 나올 수 있게 설정한다. 모든 수의 약수는 1을 포함하니 sum = 1 로 먼저 초기화 해주고, for 문은 2부터 num 까지 반복한다. 만약, 약수를 찾았다면 sum 에 더해주고, StringBuilder 에 append 해준다. (마지막에 출력할 때, 약수들을 다시 불러와야 한다. 완전수임을 찾은 다음에 다시 약수들을 각각 구하는 것보다는 약수를 찾을..
https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 간단하다. for 문을 통해 N 의 약수를 구하고, 약수를 찾을 때 마다 count 를 하나 씩 늘린다. 이때, count 가 K 와 일치하는 순간의 약수를 출력한다. 만약 약수의 개수가 K 보다 작다면, count == K 라는 조건문에 걸리지 않아서 for 문을 그냥 빠져나올 것이다. 그래서 빠져나오는 경우를 대비해 마지막에 0 을 출력해준다. import java.io.*; import java.util.StringTokenizer; public class Main..
https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 두 수를 입력받고, 두 수의 관계가 약수인지, 배수인지, 둘 다 아닌지 판별하는 문제이다. moduler 연산(%) 을 이용하면 간단하게 풀리는 문제이다. 두 수(num1, num2) 를 받았을 때, % 연산을 한 결과가 0 이라면, 두 수는 약수 혹은 배수의 관계이고, 0이 아니라면 약수와 배수가 모두 아닌 관계이다. 약수와 배수의 차이는 num1 과 num2 의 크기차이로 알 수 있다. num1 이 num2 보다 작으면, 약수(fact..
https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net (이미지는 화질이 너무 깨져서 첨부 못함) 문자열을 입력받고 명령에 따라 문자열을 편집하는 문제이다. 우선 나는 String의 substring()을 이용하여 문제를 풀었다. 코드를 보자. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTo..