[java] 백준 2765번 자전거와 속도
알고리즘/백준2021. 8. 10. 14:52[java] 백준 2765번 자전거와 속도

문제를 요약하자면... 바퀴의 지름과 회전수로 이동거리를 구할 수 있고, 바퀴가 회전하는 동안 걸린 시간과 이동거리를 이용하여 평균 속도를 구할 수 있다. 다른 문제들과 다르게 쓰일 단위들이 많아서 힌트에 '이렇게 쓰면 된다'는 느낌으로 써주었다. 나 같은 경우 힌트를 안 보고 'miles to inch'를 검색하여 찾았지만 ㅋㅋㅋ 예제 입/출력을 보다가 힌트가 있는 것을 보게 되어 참조했다. 코딩을 하기 전에 어떻게 풀지 공책에 끄적여 보았다. 지름(diameter) : d, 회전수(cycle) : c, 걸린 시간(second) : s 이동거리 : distance, 평균 속도 : mph 이동거리 같은 경우 입력에서는 inch로 입력 받는데 출력에서 miles로 출력해야 되기 때문에 inch를 5280으..

[java] 백준 2523번 별 찍기 - 13
알고리즘/백준2021. 8. 9. 15:11[java] 백준 2523번 별 찍기 - 13

내 입장에서 별 찍기가 가장 어려운 것 같다... (멍충해서 그런가 ㅋㅋ 아니면 1학년 때 C언어 과목에서 고놈의 별 찍기를 트라우마가 생길 정도로 찍었던 기억 때문일지도... 과제로 내주시는 교수님... 하지만 printf("")로 찍었던 나... ㅎㅎㅎ) 문제 출력에서 보면 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 라고 했으니 입력이 N=3이 들어왔을 때 출력이 총 5줄에 걸쳐 찍히기 때문에 기준을 N으로 잡아서 풀면 되겠다는 생각이 들었다. for(int i=0; i

[java] 백준 5073번 삼각형과 세 변
알고리즘/백준2021. 8. 9. 13:11[java] 백준 5073번 삼각형과 세 변

간단하게 요약하자면 Equilateral : 세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 Invalid : 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우(가장 긴 변 >= 나머지 두변의 합) 입력이 0 0 0이 들어가지 않는 이상 계속 돌게 만들어야된다. 가장 긴 변 같은 경우 세 변을 입력받고 가장 큰 값을 긴 변으로 생각하여 변수(max)를 만들어주면 되고 나머지는 비교 연사자를 쓰면 풀 수 있는 문제이다. 여담) 처음에 쓴 코드다. (당연히 틀렸다..) if (arr[0] == arr[1] && arr[1] == arr[2]) System.out.println("Equilateral"); else i..

[java] 백준 1252번 이진수 덧셈
알고리즘/백준2021. 8. 8. 20:03[java] 백준 1252번 이진수 덧셈

문제는 쉬워 보일 수 있다. 하지만 입력에서 각 이진수의 길이는 80을 넘지 않는다. 즉, 79자리인 입력이 들어올 경우 웬만한 자료형들은 범위를 벗어나 NumberFormat과 같은 런타임 에러가 발생할 수 있다. 여기서 써야할 클래스는 BigInteger 클래스, int, long, String으로 해보았지만 되는 것은 없었고 결론은 BigInteger 클래스였다. 나의 풀이 방법은 이렇다. 무한한 수를 담을 수 있는 BigInteger 클래스로 값을 담아서 문자열로 바꿔 준 후 문자열(2진수)을 다시 10진수로 변환시키기 위해서 BigInteger 클래스에 담아준다. 그리고 BigInteger의 add 메소드를 통해 10진수로 변환한 a와 b의 가산을 해주고 toString() 메소드로 다시 2진수..

[java] 백준 10826번 피보나치 수 4
알고리즘/백준2021. 8. 8. 15:21[java] 백준 10826번 피보나치 수 4

기존에 피보나치 수 2(2748번) 문제를 보게 되면 범위가 90인데도 long형의 범위에 들어섰었는데 [java] 백준 2748번 피보나치 수 2 먼저 문제를 보기 전 어제 풀었던 피보나치 수 문제와 같은 문제다. 단지 범위가 커진 것 뿐... [java] 백준 2747번 피보나치 수 문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 begin-dev-awos.tistory.com 이 문제는 무려 입력이 10000이다. 하지만 쫄 필요는 없다. java에서 지원하는 그 이상의 숫자를 나타내줄 수 있는 BigInteger 클래스가 존재하기 때문에 활용을 하면 된다. 풀이는 2748번과 같으므로 생략하겠다. import java.math.BigInteger; import java.util..

[java] 백준 2748번 피보나치 수 2
알고리즘/백준2021. 8. 8. 10:14[java] 백준 2748번 피보나치 수 2

먼저 문제를 보기 전 어제 풀었던 피보나치 수 문제와 같은 문제다. 단지 범위가 커진 것 뿐... [java] 백준 2747번 피보나치 수 문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.." data-og-host="begin-dev-awos... begin-dev-awos.tistory.com 피보나치 수(2747번) 문제와 동일하기 때문에 코드에 대한 설명은 하지않고 어떤 점이 달라지는지를 설명하도록 하겠다. 간단하게 2747번 문제라고 하겠다. 2747번 문제 같은 경우 int형의 범위 안에서 결과값이 나올 수 있었는데... 이번 문제 같..

[java] 백준 2747번 피보나치 수
알고리즘/백준2021. 8. 7. 14:01[java] 백준 2747번 피보나치 수

문제를 설명하기 앞서 이 아래의 문제와 같은 문제이다. 예제 입력과 출력은 같다. [java] 백준 10870번 피보나치 수 5 문제를 요약하자면 0번째 0, 1번째 1, 2번째부터는 0번째 값과 첫 번째 값의 합이라는 것이다. F(2) = F(0) + F(1) -> 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scann.. begin-dev-awos.tistory.com 이 문제와 위의 문제의 차이점은 n의 범위다. 10870번 문제에서 n은 20이었고, 이번 2747번 문제에서는 n은 45이다. 또한 티어의 차이도 있는데 약간 애매하다... 10870 티어가 좀 더 높은데 난 뒤바꼈다고 생각한다. 10870문제에서 쓰던 소스를 복..

[java] 백준 21866번 추첨을 통해 커피를 받자
알고리즘/백준2021. 8. 7. 09:38[java] 백준 21866번 추첨을 통해 커피를 받자

문제 내용을 요약하자면 대회의 9문제의 배점이 100점, 100점, 200점, 200점, 300점, 300점, 400점, 400점, 500점 이라고 한다. 그리고 받은 점수의 합계가 100점 이상이라면 커피를 받을 수 있다. 근데 점수를 조작하는 사람들이 있는데 문제의 배점을 초과하여 점수를 받는다면 hacker로 간주 출력에서 커피 추첨 대상자가 아니라면 none을 출력하고, 해커라면 hacker를 출력한다. 그 외의 경우에는 draw를 출력한다. 라고 되어있으니 그에 맞게 if문으로 조건 걸어주면 쉽게 풀 수 있다. 9문제의 배점을 배열로 만들어 점수를 입력받을 때 문제의 배점을 입력받은 점수가 초과하게 되면 hacker, 100점 미만이면 none, 그 외라면 draw 로 처리해주면 된다. impo..

[java] 백준 21312번 홀짝 칵테일
알고리즘/백준2021. 8. 6. 16:08[java] 백준 21312번 홀짝 칵테일

문제 내용이 뭔가 긴데... 그냥 요약해주자면... 입력을 홀수 홀수 짝수 입력받았을 때 홀수 X 홀수 해주면 되고 홀수 홀수 홀수 입력 받았을 때 홀수 X 홀수 X 홀수 해주면 된다. 짝수 짝수 짝수 입력 받았을 때 짝수 X 짝수 X 짝수 해주면 된다. 다시 한번 예를 들어주자면 짝수 짝수 홀수가 나왔을 때 1 X 홀수가 된다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[3]; int tot = 1; for (int i = 0; i < 3; i++) { arr[i] = sc.nextInt()..

[java] 백준 10870번 피보나치 수 5
알고리즘/백준2021. 8. 5. 23:35[java] 백준 10870번 피보나치 수 5

문제를 요약하자면 0번째 0, 1번째 1, 2번째부터는 0번째 값과 첫 번째 값의 합이라는 것이다. F(2) = F(0) + F(1) -> 즉, F(n) = F(n-2) + F(n-1) 이 문제는 간단하게 재귀를 쓰면 된다. import java.util.Scanner; class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n_th= sc.nextInt(); System.out.println(pibo(n_th)); } static int pibo(int n){ if(n

image