BOJ 83

[백준 2908/JAVA] 상수 | StringBuffer와 StringBuilder의 차이

문제 백준 2908번 두 상수를 입력받고, 상수를 거꾸로 뒤집은 후 대소비교하여 큰 수를 출력하는 문제이다. - StringBuffer을 사용해서 구현했지만 StringBuilder을 사용하는 것이 더 적절. Note참고 풀이 : StringBuffer의 reverse() 문자열 A, B를 String으로 받는다. A, B를 StringBuffer 객체로 선언하고 reverse()를 사용해 문자열을 뒤집은 후 다시 String객체로 변환한다. 해당 String객체를 다시 정수로 변환한 후 revA, revB에 저장한다. revA, revB 대소비교 후 큰 수를 출력한다. 타입 변환 : String -> StringBuffer(reverse()를 사용하기 위해) -> String(parseInt()를 사용..

BOJ 2024.03.09

[백준 1152/JAVA] 단어의 개수

문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 공백을 포함한 문자열을 입력받고 공백으로 구분되는 단어의 갯수를 구하는 문제이다. - 참고로 풀이2만 구현함 풀이 1) split() readLine()으로 문자열을 입력받고 split(" ")으로 공백 기준 분할된 문자열을 str[]에 저장한다. str[]의 길이를 출력한다. import java.util.*; import java.io.*; public class Main { pub..

BOJ 2024.03.08

[백준 2675번/JAVA] 문자열 반복

문제 백준 2675번 정수 T를 입력받고, 정수 R, 문자열 S를 'R S' 형식으로 T번 입력받는다. S의 각 문자를 R번 반복해 이어붙인 새로운 문자열 P를 만든 후 출력한다. 풀이 1) BufferedReader + charAt() BufferedReader로 T를 입력받는다. for문을 T번 반복하며 R S를 입력받는다. R과 S는 한 줄로 이루어져있고 공백으로 구분되므로, BufferedReader의 readLine()을 통해 한 줄을 읽은 후 StringTokenizer의 nextToken()으로 공백 기준으로 잘린 토큰을 하나씩 꺼내 저장한다. R S를 입력받을 때마다 S.length()만큼 for문을 돌며 S.charAt(i)를 버퍼에 R번 저장한다. 이 부분을 구현하며 3중 for문이 만..

BOJ 2024.03.08

[백준 10809번/JAVA] 알파벳 찾기 | 문자열

문제 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 알파벳 소문자로 이루어진 문자열을 입력받아 각 알파벳이 문자열에 있다면 가장 처음 등장한 위치를 출력하고, 없다면 -1을 출력한다. 풀이 1 BufferedReader로 단어 S를 입력받는다. 각 알파벳이 몇 번째에 있는지 저장할 배열을 선언한다. (알파벳은 총 26개이므로 배열의 크기 26으로 선언) 알파벳이 있으면 해당 알파벳이 처음 등장한 위치를 출력하고 알파벳이 없으면 -..

BOJ 2024.03.07

[백준 11720번/JAVA] 숫자의 합 | charAt(), getBytes()

문제 백준 11720번 첫 줄에 100 이하의 자연수 N을 입력받고, 둘째 줄에 N개의 숫자를 공백 없이 입력받는다. 입력받은 숫자들의 합을 구한다. 풀이 입력받는 수의 자릿수가 0~100이므로 int, long으로 받을 수 없다. 데이터 표현 범위 int : -2,147,483,648 ~ 2,147,483,647 -> 최대 10자리 long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 -> 최대 19자리 따라서 String으로 입력받고 각 자릿수를 int형으로 변환한 후 덧셈해야 한다. 3가지 방법을 사용 (1) Scanner + charAt() + getNumericValue() (2) BufferedReader + charAt() (3) Bu..

BOJ 2024.03.06

[백준 9086번/JAVA] 문자열 | String.valueOf(), subString() | String.valueOf()와 toString()의 차이점

문제 백준 9086번 문자열 문자열을 T번 입력받고, 각 문자열의 첫 글자와 끝 글자를 출력하는 문제이다. 풀이 풀이 1) 입력받은 문자열의 first, last를 charAt()으로 추출한 후 String.valueOf()을 사용하여 문자열로 변환하여 출력 풀이 2) 입력받은 문자열의 first, last를 부분 문자열인 substring()으로 추출하여 출력 코드 1. String.valueOf() 사용 import java.util.*; import java.io.*; public class Main { public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStre..

BOJ 2024.03.05

[백준 1546번/JAVA] 평균 | 배열

문제 풀이 N을 입력받고, 길이가 N인 배열을 선언한다. N만큼 반복하며 점수를 입력받고, max를 구한다. 현재 점수/max* 100을 구하고 배열에 입력한다. sum을 구한다. 새로운 점수 평균을 구하고 출력한다. 코드 import java.util.*; public class Main { public static void main(String[] args){ //N을 입력받기, 길이가 N인 배열 선언 //N만큼 반복하며 점수 입력받기, max 구하기 //현재 점수/max*100 구하고 배열에 입력, sum 구하기 //새로운 점수 평균 구하기 Scanner sc = new Scanner(System.in); int N = sc.nextInt(); float[] arr = new float[N]; fl..

BOJ 2024.03.05

[백준 10811번/JAVA] 바구니 뒤집기 | 배열

문제 풀이 N, M을 받는다. 길이가 N인 배열을 선언하고 1...N으로 초기화한다. for문을 M번 반복하며 i, j를 받는다. i, j를 받을 때마다 i~j 범위를 역순으로 변경한다. 배열을 출력한다. 코드 import java.util.*; public class Main { public static void main(String[] args){ //N, M 받기 //길이가 N인 배열 선언, 1...N으로 초기화 //for문 M번 반복하며 i, j 받고, 범위 i~j를 역순으로 변경 //배열 출력 Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] arr = new int[N]; for(int i..

BOJ 2024.03.05

[백준 5597번/JAVA] 과제 안 내신 분..? | 배열

문제 풀이 길이가 30인 배열을 선언한다. 28개의 값을 받아 배열에 저장한다. >> 1을 입력받으면 1번째 인덱스(0)에, 2을 입력받으면 2번째 인덱스(1)에 저장 for문을 30번 반복하며 0이 저장된 인덱스+1을 출력한다. 코드 import java.util.*; public class Main { public static void main(String[] args){ //길이가 30인 배열을 선언하고 모두 0으로 초기화 //28명 입력받아서 각 인덱스에 저장하기 //데이터가 0인 인덱스번호+1값을 출력 Scanner sc = new Scanner(System.in); int N = 30; int[] arr = new int[N]; for(int i=0; i

BOJ 2024.03.04