본문 바로가기

Java68

[JAVA] 나눗셈, 나머지 연산자 없이 나머지 구하기 문제 나누기와 나머지 연산자를 사용하지 않고 num1를 num2로 나눈 나머지를 리턴 방법 나눗셈과 나머지 연산자는 사용할 수 없다 그렇다면 지금 사용할 수 있는 연산자는 덧셈과 뺄셈 num1에서 num2를 계속 빼준다면 결국 나머지가 나오기 때문에 반복문과 뺄셈을 사용해 나머지를 구현 구현 public class Main { public Integer modulo(int num1, int num2) { if (num2 == 0) return null; while (num1 >= num2) { num1 = num1 - num2; } return num1; } } 수도코드 -while을 사용해 num1의 값이 num2보다 같거나작아질 때까지 반복해서 빼줌 => 나머지 2022. 10. 21.
[JAVA] 백준 1924번 (2007년) 문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. 입력: 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. 출력: 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 예제 입력: 3 14 예제 출력: WED 문제 이해 2007년에 날짜를 입력하고 어떤 요일인지 출력하는 문제이다 해결 1. 스캐너를 사용해 M(월) D(일) 값을 입력받는다 2. Month 값에 1월~12.. 2022. 10. 21.
[JAVA] 이전 요소들의 합보다 큰가? 문제: 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴 public class Main { public static boolean superIncreasing(int[] arr) { if(arr.length == 0) return false; int sum = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] 2022. 10. 21.
[JAVA] 백준 2446번 (별찍기 - 9) 문제: 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력: 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제입력 : 5 예제출력 ********* ******* ***** *** * *** ***** ******* ********* import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStre.. 2022. 10. 21.
[JAVA] 백준 11721번 (열 개씩 끊어 출력하기) 문제: 알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다. 한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오. 입력: 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. 출력: 입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다. 예제입력 BaekjoonOnlineJudge 예제출력 BaekjoonOn lineJudge import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade.. 2022. 10. 21.
[JAVA] 백준 2444번 (별찍기 -7) 문제: 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력: 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제입력: 5 예제출력: * *** ***** ******* ********* ******* ***** *** * import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReade.. 2022. 10. 21.
[JAVA] 백준 2445번 (별찍기 -8) 문제: 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력: 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제입력: 5 예제 출력 * * ** ** *** *** **** **** ********** **** **** *** *** ** ** * * import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new.. 2022. 10. 21.
[JAVA] 자잘한 문제 풀면서 배운 개념 EOF End of File 더이상의 읽을 수 있는 데이터가 존재하지 않을 때 반복문을 종료 백준 10951번 while (sc.hasNextInt()) -> 입력값이 정수가 아니면 더이상 입력받지 않고 false를 반환하면 반복문을 종료시킴 아스키코드 백준 11654번 char ch = sc.nextLine().charAt(0); int num = (int)ch; -> char형으로 scanner를 이용해 입력을 받고 int형태로 바꿈 문자 그대로 입력받기 백준 11718번 while ((str = br.readLine()) != null) { System.out.println(str); -> br을 통해 입력받는 str이 비어있을 때까지 반복 readLine vs read nextLine(): 엔터값.. 2022. 10. 21.
[JAVA] 가장 길고 짧은 문자열 제외하기 문제: 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴 주의: 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이는 같을 수 없다/ 길이가 가장 길거나 짧은 게 여러개라면 나중에 위치한 문자열을 제거 public class Main { public String[] removeExtremes(String[] arr) { if (arr.length == 0) return null; int shortestLen = 20; int longestLen = 0; int shortestIdx = 0; int longestIdx = 0; for (int i = 0; i < arr.length; i++) { if (arr[i].length() = longestLen) { longestLen = arr[i].len.. 2022. 10. 21.
[JAVA] 백준 10817 (세 수) 문제: 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력: 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 출력: 두 번째로 큰 정수를 출력한다. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = {sc.nextInt(), sc.nextInt(), sc.nextInt()}; Arrays.sort(arr); System.out.print(arr[1]); } } 원래 생.. 2022. 10. 21.
728x90