본문 바로가기
[백준] 2720번 JAVA 세탁소 사장 동혁 - 일반 수학 1 자 문제가 길다. 차분히 읽기 너무 싫다.그러니까 동혁 중대장이 세탁소를 운영하다 리암을 채용하고 실망했다.왜냐면 거스름돈을 자꾸 실수해서 주기 때문. 중대장은 리암을 도와주는 프로그램을 작성하려고 하는데 디아블로를 해야해서 이 문제를 읽고 있는 여러분이 대신 해주어야 이런 시발 이런 쓰잘대기 없는 내용이 문제에 왜 있어!! 자 T와 C 두 정수를 입력받는다. T는 테스트 케이스의 개수이며 C는 거스름돈이다. 동전의 개수를 최소하 하여야 한다.거스름돈 동전의 단위는 25센트(쿼터), 10센트(다임), 5센트(니켈), 1센트(페니) 이 순서대로 공백을 넣어 각 동전의 개수를 출력하면 된다.이거 그리디 알고리즘 같긴 한데 뇌에 남은 메모리가 없다. 그냥 동전, 욕심쟁이, 거스름돈, 그리디 이 단어들이 조합되.. 2024. 8. 1.
[백준] 11005번 JAVA 진법 변환 2 - 일반 수학 1 진법 변환 1과 비슷한 문제이다. 1에서는 수와 진법을 입력하면 10진수로 출력했지만 이번에는 10진수와 진법을 입력하면 입력한 진법으로 출력하는 문제이다. 저번 출력을 입력하고 저번 입력을 출력하는 것이므로 순서를 반대로 바꿔서 코딩하면 된다.123456789101112131415161718192021222324import java.util.Scanner; public class Main{    public static void main(String[] args){        Scanner sc = new Scanner(System.in);                int n = sc.nextInt();        int b = sc.nextInt();         String result = .. 2024. 7. 31.
[백준] 2745번 JAVA 진법 변환 - 일반 수학 1 두 수 N과 B를 입력받고 B진법 수 N을 10진법으로 변환해서 출력해 주는 프로그램을 작성한다.이게 아마 중학수학 과정에 있었던 내용이었던 거 같기도 한데.. 진법 변환은 컴퓨터 구조나 c언어 보수 어쩌고 저쩌고 하면서도 다루게 된다. 2진법을 예로 들자면 1010을 10진법으로 변환하기 위해서는2진수1010자릿수2^32^22^12^010진수84211010을 오른쪽 부터 자릿수를 곱하고 전체를 더하면 된다. 즉 2진수 곱하기 10진수를 하면 된다. 그렇게 계산하면 (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (0 * 2^0)= 8 + 0 + 2 + 0= 10전개해서 10이 된 것을 알 수 있다.그러면 위에 문제를 풀 때 규칙을 적용시켜 보면 숫자 N에 맨 오른쪽 수부터 첫 번째 자리.. 2024. 7. 31.
[백준] 2563번 JAVA 색종이 - 2차원 배열 1~100까지 좌표에서 n만큼 좌표를 입력받고 좌표는 맨 아래 맨 왼쪽의 좌표를 받는다. 거기서 오른쪽으로 10칸 위로 10칸 정사각형을 n만큼 칠해서 총 칠해진 면적을 더해서 출력한다. (겹친 곳 제외) 100x100 크기의 배열을 만들고 한번 체크된 곳인지 아닌지만 중요하기 때문에 boolean 타입으로 배열을 선언한다. 정사각형 개수 n을 입력받고 x y좌표부터 x축은 오른쪽으로 10 y축으로 10칸 반복하면서 true로 체크한다. n만큼 반복하면서 true인 곳은 지나치고 true로 체크할때마다 sum 변수에 1씩 더해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner;.. 2024. 1. 26.
[백준] 10798번 JAVA 세로읽기 - 2차원 배열 행렬을 입력받고 행부터 먼저 세로로 다 출력하고 다음 열로 넘어가서 출력한다. 한 행에 0 ~ 15까지 입력할 수 있으니 char[5][15]로 선언을 하고 한 줄 씩 입력받으니 우선 String으로 입력받고 String 값 길이만큼 charAt() 함수로 2차원 배열에 입력한다. 5줄 입력받고 배열의 값이 null 이 아니면 행부터 증가하면서 출력. char변수는 null 체크를 0으로 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner.. 2024. 1. 16.
[백준] 2566번 JAVA 최댓값 - 2차원 배열 9x9 행렬에서 최대값을 출력하고 그 값의 위치를 출력한다. 단순히 for문을 돌면서 현재 max값과 비교해 더 큰 값이 입력되면 max에 저장하고 해당 위치 값을 row, col 변수에 저장해 놓는다. 입력값이 전부 0이면 0 1 1 이 출력되어야 하기 때문에 row, col은 1로 초기화 시킨다. for문을 다 돌고 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int arr[][] = new int.. 2024. 1. 15.
[백준] 2738번 JAVA 행렬 덧셈 - 2차원 배열 n*m 행렬을 두 번 입력하고 두 행렬을 더해서 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int arr1[][] = new int[n][m]; int arr2[][] = new int[n][m]; for(int i=0; i 2024. 1. 15.
[백준] 25206번 JAVA - 너의 평점은 - 심화1 (switch case, split()으로..) 너의 평점은 문제. 분명 대학교 졸업을 했는데 평점 구하는 법을 까먹었다. 아니 분명 계산을 어떻게 했었는데 어떻게 했더라... 검색해서 알아냈다. 어떤 과목에 대해 그 학점과 점수를 곱하고 전체 과목을 더한다. 그리고 내가 수강한 총 학점으로 나누면 내 평점이 된다. - 학점 * 점수 + 학점 * 점수 / 학점 + 학점 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 import java.util.Scanner; import java.util.StringTokenizer; public class Main{ pub.. 2024. 1. 8.
[백준] 10988번 JAVA - 팰린드롬인지 확인하기 (심화1) 앞으로 읽을 때와 뒤로 읽을 때가 같은 문자열이면 1을 출력 아니면 0을 출력한다. 토마토, 기러기, 소주 만병만 주소 뭐 이런 것들을 의미한다. level로 예를 들면 0번째와 4번째가 같으면 되고 1번째와 3번째가 같으면 팰린드롬이다. 길이가 5면 2번 비교하면 되고 4면 마찬가지로 2번만 비교하면 된다. 길이 / 2로 해서 몫만 가지고 for문을 돌린다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); int.. 2023. 8. 3.
[백준] 2444번 JAVA - 별 찍기 - 7 (심화1) 규칙을 찾아서 for문을 돌리면 된다. 공백이 4 3 2 1 0 그리고 별은 1 3 5 7 9 순으로 출력된다. 어쨌건 입력받은 n을 기준으로 반복해야 하기 때문에 별은 (1 2 3 4 5 / 0 1 2 3 4) 이런 식으로 출력을 나눠서 한다. 감소하는 별도 마찬가지로 규칙을 찾아서 n을 기준으로 반복문으로 출력하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in.. 2023. 7. 30.
[백준] 11718번 JAVA - 그대로 출력하기 (문자열) 공백포함하여 입력받아 출력해야 하니 nextLine() 함수를 사용한다. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()) { System.out.println(sc.nextLine()); } } } Colored by Color Scripter cs 2023. 7. 30.
[백준] 9086번 JAVA - 문자열 (문자열) 문자열을 얼마나 입력할지 테스트 케이스의 수를 입력하고 문자열을 그만큼 입력한다. 문자열의 처음과 끝을 출력해 주면 되는데 charAt() 함수를 사용하여 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=0; i 2023. 7. 25.
[백준] 2743번 JAVA - 단어 길이 재기 (문자열) 알파벳으로만 입력한 문자열 길이를 출력하면 된다. length() 함수로 출력하면 끝.. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s.length()); } } Colored by Color Scripter cs 2023. 7. 25.
[백준] 27866번 JAVA - 문자와 문자열 (문자열) 문자열을 입력하고 수를 입력하면 해당 위치에 있는 문자를 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); int n = sc.nextInt(); System.out.println(s.charAt(n-1)); } } Colored by Color Scripter cs charAt() 함수를 사용하여 출력한다. 문자열도 char들의 배열이므로 0부터 n-1 까지 이므로 n-1의 위치에 문자를 출력한다.\ 2023. 6. 22.
[백준] 10811번 JAVA - 바구니 뒤집기 (1차원 배열) 1부터 n번의 번호를 가진 바구니가 있고 바구니를 역순으로 정렬할 건데 몇 번 반복할 건지 m을 입력하고 i~j까지의 순서를 역순으로 정렬한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //바구니 개수 int m = sc.nextInt(); //바구니 역순 정렬 횟수 int arr[] = new int[n + 1]; // 바구니 (1~n).. 2023. 6. 21.
[백준] 10813번 JAVA - 공 바꾸기 (1차원 배열) 1 부터 n 까지 바구니가 있고 각 바구니에는 1 부터 n 번의 공이 들어있다. 이 공을 m번 교환하는데 i 바구니와 j 바구니를 바꾸기로 한다. 프로그래밍에서 두 변수의 값을 바꿀때는 임시변수(tmp)를 생성해서 거기에 값을 넣고 교환하는 방식으로 한다. tmp = i; i =j; j = tmp; 이렇게 해서 출력만 하면 간단하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextI.. 2023. 6. 20.
[백준] 10810번 JAVA - 공 넣기 (1차원 배열) 문제가 길어서 읽기가 싫었다.. 먼저 n m 입력을 하면 1부터 n까지 바구니가 있고 i j k 정수를 m번 반복하여 입력한다. i번쨰 바구니부터 j번째 바구니까지 k숫자의 공을 넣는다. 중복되게 넣은 바구니는 나중에 넣은 공으로 바꾸고 1부터 n 까지 바구니의 들어있는 공을 출력한다. 없으면 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner sc = new Scanner(System.in); int n = sc... 2023. 6. 7.
[백준] 25314번 자바 코딩은 체육과목 입니다 - 반복문 4의 배수를 입력하고 그 배수만큼 long을 출력해 주면 된다. 예를 들어 100을 입력하면 4 * 20 = 100 이므로 long을 20개 출력해 주면 끝이다. import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int div = n / 4; for(int i=0; i 2023. 5. 22.