자바 372

[Java] 백준 풀기 2506 - 점수계산

자바 백준 2506번 브론즈 3 https://www.acmicpc.net/problem/2506 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 총 문제의 개수를 입력 받고, 채점 결과를 array 에 입력 받는다. 계산된 점수와 연속으로 맞은 개수를 저장할 변수를 각각 초기화하여 생성한다. 채점 결과를 하나씩 빼내어 만약 1 이 나오면 지금까지 저장된 연속 맞은 개수를 하나 늘리고 이 값을 점수에 누적 합한다. 그렇지 않고 0 이 나오면 연속 맞은 개수를 0 ..

공부하기/백준 2023.06.12

[Java] 백준 풀기 1927 - 최소 힙

자바 백준 1927번 실버 2 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 보기 분류: 자료 구조, 우선순위 큐 문제 풀기 메서드 분리를 위해 명령을 모두 배열에 저장한다. 우선순위 큐를 기본 옵션으로 생성하여 낮은 숫자가 부여되도록한다. 명령어를 하나씩 빼내어 0 또는 그 외의 자연수에 대한 조건문을 실행한다. 0 일 경우 배열이 비어있는지 확인하고 비었다면 0 을 출력, 그렇지 않으면 poll() 을 통해 가장 ..

공부하기/백준 2023.06.11

[Java] 백준 풀기 10952 - A+B 5

자바 백준 10952번 브론즈 5 https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 빈 칸으로 나누어진 두 수를 입력 받는다. 두 수가 0 0 이면 while loop 를 종료한다. 0 0 이 아니면 두 수를 더하고 그 결과를 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { int a ..

공부하기/백준 2023.06.10

[Java] 백준 풀기 17413 - 단어 뒤집기 2

자바 백준 17413번 실버 3 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 문제 보기 분류: 구현, 자료 구조, 문자열, 스택 문제 풀기 StringBuilder 를 이용하여 순서 그대로 유지해야할 의 묶음과 순서를 뒤집어야할 묶음을 저장할 변수를 지정한다. 넓은 범위에서 분기는 유무인 Tag 의 상태로 지정한다. "" 는 inTag 로 지정하여 시작 "" 가 나타나면 inTag 를 False ..

공부하기/백준 2023.06.09

[Java] 백준 풀기 1924 - 2007년

자바 백준 1924번 브론즈 1 https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 Zeller's congruence 를 사용하여 해당 요일을 찾을 수 있다. 1월 또는 2월의 경우 연은 1 을 빼고 월은 12 를 더하여 식에 대입한다. 0 부터 6 까지 숫자로 표현된 요일을 해당 문자로 변환하여 출력한다. 코드 보기 import java.util.Scanner; ..

공부하기/백준 2023.06.08

[Java] 백준 풀기 10988 - 팰린드롬인지 확인하기

자바 백준 10988번 브론즈 2 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 입력받은 문자의 길이를 저장한다. 문자 길이의 절반만큼 for loop 을 시행하면서 chatAt() 을 사용하여 문자의 끝단부터 두 개씩 같은 char() 인지 비교를 한다. 서로 같지 않은 경우가 발생하면 false 를 return 하고, 그렇지 않고 for loop 가 완료되면 true 를 return 한다. 반환된 true 또는 false 에 따라 1 또는 0 을 출력..

공부하기/백준 2023.06.07

[Java] 백준 풀기 1463 - 1로 만들기

자바 백준 1463번 실버 3 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 문제 풀기 다이나믹 프로그램으로 저장할 N + 1 개 배열을 생성한다. 2 부터 N 까지 순차적으로 각 연산이 이루어질때 최소 연산의 횟수를 찾고 지속적으로 저장한다. 이는 1을 빼는 연산의 횟수를 저장하고, 만약 i 가 2 또는 3 으로 나누어 떨어지게 되면 그 횟수를 찾아 dp[i] 와 비교하여 최소값으로 다시 저장한다. N 까지 모든 경우를 확인했을 때 dp[N] 에 저장된 최소 연산 횟수를 반환하여 출력한다. 코드 보기 import ja..

공부하기/백준 2023.06.06

[Java] 백준 풀기 4153 - 직각삼각형

자바 백준 4153번 브론즈 3 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 보기 분류: 수학, 기하학, 피타고라스 정리 문제 풀기 입력받은 세 숫자가 0, 0, 0 이면 0 + 0 + 0 == 을 만족하여 while loop 를 빠져나가게 한다. 그 외의 30,000 보다 작은 양의 정수에 대해서는 isRightTriangle() 메서드를 실행시킨다. isRightTriangle() 메서드는 크기 정렬이 되지 않은 세 수를 Array 에 입력 받아 오..

공부하기/백준 2023.06.05

[Java] 백준 풀기 11719 - 그대로 출력하기 2

자바 백준 11719번 브론즈 3 https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 while 을 통해 지속적인 입력을 받으면서 Scanner() 의 hasNextLine() 을 통해 다음 입력이 없으면 최종 문자를 출력하도록 작성한다. 최종 문자들은 String 과 달리 누적 문자기록이 가능한 StringBulider 를 이용한다. StringBuilder 를 통해 output 을..

공부하기/백준 2023.06.04

[Java] 백준 풀기 2741 - N 찍기

자바 백준 2741번 브론즈 5 https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 숫자만큼 for loop 을 돌리면서 1 부터 N 까지 step +1 을 적용하여 모든 수를 답안 형식에 맞게 출력한다. 코드 보기 import java.util.Scanner; public class Main { public static void main (String args[]) { Scanner sc = new Scanner(System.in); int inputNum = sc.nextInt(); outputNumbersF..

공부하기/백준 2023.06.03