반응형

Java 116

백준알고리즘 #1085 직사각형에서 탈출 java

임의의 점 x, y에서 가장 가까운 모서리까지의 거리를 구하는 문제이다. 먼저 직사각형의 크기는 1000까지로 한정되어있으므로 최솟값을 1000으로 고정시켜준다. 그리고 x, y, w, h가 들어갈 배열을 만들어 각각의 값을 입력시켜준다. 각 모서리까지의 최솟값은 x, y, w-x, h-y 값만 비교하면 나오므로 w 와 h가 들어가있는 a[2]와 a[3]의 원소를 각각 w-x, h-y값으로 바꾸어 준 뒤 for문을 돌려서 a[0]부터 a[3]까지의 값을 비교하여 제일 작은 값을 min 에 넣어주면 완성. import java.util.Scanner; public class Main{ public static void main(String args[]){ Scanner s = new Scanner(Syst..

백준알고리즘 #2577 숫자의 개수 java

3개의 수를 입력받고 이 수들을 곱한 값에 0~9까지의 수가 각각 몇개씩 들어갔는지를 확인하는 문제. 먼저 a,b,c를 입력받고 mul변수를 만들어 이 수들을 곱한다. 0부터 9까지의 숫자의 개수가 들어갈 배열 arr[10]도 만들어 둔다. 그 다음 while문을 이용하여 mul 값이 0이 될때까지(10으로 계속 나누다 보면 몫이 마지막에는 0이 된다.) 반복하는 구문을 만든다. 그안의 내용으로는 mul값을 10으로 나눈 나머지(1의 자리수를 하나씩 꺼내는 방법) 를 구하여 n에 mul%10값을 넣은 후 arr[n] 값을 하나씩 카운트 해주면 끝. 마지막으로 for문을 이용해 10개의 값을 가지고 있는 arr 배열의 수를 출력해준다. import java.util.Scanner; public class ..

백준알고리즘 #14681 사분면 고르기 java

x와 y 좌표값을 입력받았을 때 점(x,y)가 어느 사분면에 있는지를 찾는 문제. 먼저 x값이 양수인 경우에서 y값이 양수인가 음수인가를 나누고, 양수라면 1사분면 음수면 3사분면을 출력하면 된다. 마찬가지로 x값이 음수인 경우에서 y값이 양수라면 2사분면 음수라면 3사분면을 출력하면 끝. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int x = s.nextInt(); int y = s.nextInt(); if (x > 0) { if (y > 0) { System.out.println(1); } else System.out.pri..

백준알고리즘 #10996 별 찍기 -21 java

먼저 규칙을 찾아보자. 2일때는 4줄 3일땐 6줄 4일땐 8줄 이므로 n일때 2n줄이 나오게 된다. 그리고 줄 뿐 아니라 칸수도 하나씩 증가하게 된다. 2일땐 2칸, 3일때 3칸... 이런식으로 말이다. 이 때 각 줄에서는 간단한 규칙을 찾아볼 수 있는데 홀수 줄에서 홀수 칸은 *, 짝수 칸은 빈칸. 짝수 줄에서는 반대로 이루어져 있다. 이것을 코드로 나타내 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); for (int i = 1; i

백준알고리즘 #2446 별 찍기 - 9 java

앞선 별 찍기보다 조금 복잡한 문제이다. 규칙을 유추해 보자면 5를 입력했을 때 9 7 5 3 1 3 5 7 9 순으로 별이 찍혔다. 다만 이렇게 별이 찍힌다면 단순히 2n -1, 2n-3 ... 1 ...2n-3, 2n-1 순으로 별을 찍으면 되겠지만 예제 출력에 보면 빈칸이 앞에 붙어있다. 먼저 코드를 보면 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); for (int i = n - 1; i > 0; i--) { for (int j = 1; j < n - i; j++) { System.out...

백준알고리즘 #2523 별 찍기 - 13 java

많이 접하게되는 별 찍기 문제이다. 규칙을 유추한 뒤 별을 찍어보자. 예제에서 3을 입력했을 때 별이 1,2,3,2,1 개 순으로 나온 걸 보아 n을 입력했을 때 1,2,3...n 개의 별을 차례로 찍고 다시 n-1,n-2....2,1 순으로 별이 찍히는 것을 알 수 있다. 약간 노가다(?)식으로 코드를 작성해보면 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j 0; i--) { for (int j = 0; j <..

백준알고리즘 #5543 상근날드 java

3개의 버거와 2개의 음료 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 구하는 코드. 문제에서 버거와 음료를 하나씩 고른다고 했으므로 for문을 2개 이용하여 버거 값과 음료 값을 따로 입력받는다. 가장 싼 세트 메뉴의 가격을 구하는 프로그램이므로 각 for문 안에서 가장 싼 버거 값을 Hmin에, 가장 싼 음료값을 Bmin에 대입한다. 그 후에 set라는 변수를 만들어 앞서 구했던 Hmin과 Bmin값을 더한 후 50원을 빼면 끝. (set 변수를 만드는 대신 System.out.println(Hmin+Bmin-50); 코드를 사용해도 무방) import java.util.Scanner; public class Main { public static void main(String[] args) { ..

백준알고리즘 #10039 평균 점수 java

아주 간단한 문제. 학생 5명의 점수를 입력받아서 평균 점수를 출력하는 문제이다. for문을 이용해 각 학생들의 점수를 입력받는다. 다만 이때 점수가 40점 미만이라면 이 점수를 40점으로 고치도록 하자.(조건 참고) 그 후에 0으로 초기화 해놓은 sum 변수에 각 학생들의 점수를 더하고, 마지막으로 이 sum값을 5로 나눈 몫을 avg에 대입하면 끝. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int sum = 0; int avg = 0; for (int i = 0; i < 5; i++) { int n = s.nextInt();..

백준알고리즘 #2581 소수 java

지난번 소수찾기 문제와 비슷한 문제이나 조건이 조금 추가되었다. M이상 N 이하의 소수를 찾고, 그 합과 최솟값을 출력하는 문제이다. 먼저 M과 N의 값을 입력받은 후, M부터 N까지 각각의 수를 소수인지 아닌지 판명하기 위해 for문을 2번 중첩시켜 사용하였다. 앞서 했던 소수찾기 문제처럼 div라는 변수를 추가해 1부터 차례대로 나누었을 때 나머지가 0이라면 div값을 증가시키는 방법으로 소수를 판별했고, div == 2 가 성립된다면 sum에 그 값을 차례대로 더하도록 하였다. 최솟값은 min이라는 변수에 입력받은 수 중 가장 큰 수인 N 값으로 초기화 한 다음, div==2를 만족하는 수 중에서 min보다 작은 값이라면 min에 대입하는 방식으로 찾았다. 아래 코드에 count변수는 마지막 조건인..

반응형