[백준]4153 : 직각삼각형 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 피타고라스의 정리 ( a^2 + b^2 = c^2 ) 이면 직각삼각형이다. (c의 변이 가장 클 때) 를 이용하여 풀면 되는 간단한 문제이다! 바로 코드로 확인해보자 실패 : 틀렸습니다. package 백준; //[백준]4153 : 직각삼각형 - JAVA(자바) // //제곱 : Math,pow(5,2) = 5^2 import java.io.BufferedReader; import java.io.IOExceptio..
[백준]2839 : 설탕배달 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제만 봤을땐 어렵게 느껴질 수도 있을 것 이다. 그치만 잘 보면 결국, 5의 배수 + 3의 배수 이 두개로 모든게 끝난다! (규칙이 보일 것 이다) 말로 하면 어려우니, 직접 그려가면서 설명하겠다! 약식으로 먼저 나타내면 ① 5의 배수 일 때 ② 5의 배수 +1 일 때 ③ 5의 배수 +2 일 때 ④ 5의 배수 +3 일 때 ⑤ 5의 배수 +4 일 때 ⑥ 나머지 가 될 것이다 ! 표를 채워 나가보겠다. ---..
[백준]2798 : 블랙잭 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 실제 게임에서도 유명한 '블랙잭' 문제이다! 본인이 가진 수 중(N) 크기(M)을 넘지 않는 최대의 수를 만들면 된다. 기존 블랙잭은 21 이라는 고정값이 있지만, 이 문제에서만큼은 M으로 크기를 지정해 줄 수 있다! 어렵지 않으니 금새 풀어보자! -----------------풀이------------------- 전형적인 브루트 포스 문제이다. (기계를 활용한 ..
[백준]2609 : 최대공약수와 최대공배수 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 최대공약수 최소공배수 문제이다. GCD(최대공약수) 알고리즘으로 유명한 "유클리드 호제법" 알고리즘으로 풀었다. 너무나도 쉬우면서 유익한 알고리즘이니 꼭 배워서 사용하길 바란다! 최대공약수 : 유클리드 호제법 알고리즘 최소공배수 : (A * B) / 최대공약수 로 풀었다! 성공코드 package 백준; //[백준]2609 : 최대공약수와 최대공배수 - JAVA(자바) //새로 알게된 것 //GCD (Greatest Common Divisor) algorithm :..
[백준]2775 : 부녀회장이 될테야 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 글만 봤을땐 어려워 보일 수 있어도 그림을 그려 규칙을 파악하면 쉽게 해결 가능하다. 0층부터 차근차근 눈으로 올라가보자 약식으로 아파트 규칙을 표로 나타내 보았는데, 규칙이 보이는가? 좀더 자세히 보자면 1층 1호 + 0층 2호 = 1층 2호 (빨강) 1층 2호 + 0층 3호 = 1층 3호 (파랑) 1층 3호 + 0층 4호 = 1층 4호 (초록) 1층 4호 + 0층 5호 = 1층 5호 (노랑) . . . 2층 1호 + 1층 2호 = 2..
[백준] 2751 : 수 정렬하기 2 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 단순 정렬 문제 인 줄 알고 쉽게 접근했다가 큰 코 다친 문제다. (정답을 원하는 분들은 가장 마지막 코드를 보면 될 것이다) 실패코드1(시간초과) : Arrays.sort(), System.out.println() 사용 실패1 : 사유 -> 시간초과 package 백준; //2751 : 수 정렬하기 2 // //ArrayList 선언법 //list.sort(comparator.~~()..
[백준] 2292 : 벌집 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 그림을 자세히 보다보면 분명 규칙이 보일 것 이다. 처음 문제를 보면 뭐지? 싶을정도로 난해한 것 처럼 보이지만 말이다. 한번 직접 그림을 그리고 규칙을 찾아보자. 형편없는 그림임에도 불구하고, 규칙이 보이기 시작하는가! 숫자를 따라가다보니 둥그런 선이 형성된다. 선을 기준으로 방의 갯수가 늘어난다. 이걸 토대로 코드를 작성해보자. //2292 : 벌집 //새로 알게된 것 //규칙 찾기 , 초기화 기준 생..
[백준]2164 : 카드2 - JAVA(자바)
·
[코딩테스트]
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net Queue(큐) 를 이해하고 있다면 아주 간단히 풀 수 있는 문제이다! 문제에 대한 정답코드 package 백준; //2164 : 카드2 //새로 알게된 것 //Queue 라이브러리 함수 (offer(), poll(), peek()) //Queue 선언 방법 Queue q = new LinkedList(); import java.io.BufferedReader; import java.io.Inpu..