Algorithms/BOJ[Java]

    [백준/17009번] Winning Score  ( CCC 2019 Junior Division)[Java]

    [백준/17009번] Winning Score ( CCC 2019 Junior Division)[Java]

    Problem You record all of the scoring activity at a basketball game. Points are scored by a 3-point shot, a 2-point field goal, or a 1-point free throw. You know the number of each of these types of scoring for the two teams: the Apples and the Bananas. Your job is to determine which team won, or if the game ended in a tie. Input The first three lines of input describe the scoring of the Apples,..

    [백준/13597번] Tri-du( A Primeira Fase da Maratona de Programação 2015) [Java]

    [백준/13597번] Tri-du( A Primeira Fase da Maratona de Programação 2015) [Java]

    Problem Tri-du é um jogo de cartas derivado do popular jogo de Truco. O jogo utiliza um baralho normal de 52 cartas, com treze cartas de cada naipe, mas os naipes são ignorados. Apenas o valor das cartas,considerados como inteiros de 1 a 13, são utilizados. No jogo, cada jogador recebe três cartas. As regras são simples: Um trio (três cartas de mesmo valor) ganha de uma dupla (duas cartas de mes..

    [백준/11319번] Count Me In (CCPC 2015 Division 2) [Java]

    [백준/11319번] Count Me In (CCPC 2015 Division 2) [Java]

    Problem Given a sentence in English, output the counts of consonants and vowels. Vowels are letters in [’A’,’E’,’I’,’O’,’U’,’a’,’e’,’i’,’o’,’u’]. Input The test file starts with an integer S(1 ≤ S ≤ 100), the number of sentences. Then follow S lines, each containing a sentence - words of length 1 to 20 separated by spaces. Every sentence will contain at least one word and be comprised only of ch..

    [백준/11104번] Fridge of Your Dreams ( IDI Open 2007 )[Java]

    [백준/11104번] Fridge of Your Dreams ( IDI Open 2007 )[Java]

    Ploblem Eirik drinks a lot of Bingo Cola to help him program faster, and over the years he has burned many unnecessary calories walking all the way to the kitchen to get some. To avoid this he has just bought a small fridge, which is beautifully placed next to his computer. To make it match his fancy big-tower with all its blinking LEDs, it is necessary to style it a bit. He has bought a weight ..

    [백준/5988번] 홀수일까 짝수일까 [Java]

    [백준/5988번] 홀수일까 짝수일까 [Java]

    문제 짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기로 정했다. N개의 정수가 주어지면 홀수인지 짝수인지를 출력하는 프로그램을 만들어 경재의 능력을 검증할 수 있게 도와주자. 입력 첫 번째 줄에 숫자의 개수 N(1

    [백준/10669번] 오늘 날짜 [Java]

    [백준/10669번] 오늘 날짜 [Java]

    문제 서울의 오늘 날짜를 출력하는 프로그램을 작성하시오. 입력 입력은 없다. 출력 서울의 오늘 날짜를 "YYYY-MM-DD" 형식으로 출력한다. 힌트 채점 서버는 시간대(Timezone)는 UTC+0 이다. 다음은 채점 서버에서 KST 시간으로 2018년 3월 21일 오후 2시 7분 38초에 date 명령어를 실행시킨 결과이다. Wed Mar 21 05:07:38 UTC 2018 풀이 날짜 받아오는 Date today로 선언한뒤 날짜 출력 형식을 변환해주는 SimpleDateFormat을 임포트한 뒤 조건에서 제시한 "YYYY-MM-dd"로 지정한다. 그리고 출력.ㅇㅅㅇ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.*; import java.i..

    [백준/10093번] 숫자 [Java]

    [백준/10093번] 숫자 [Java]

    문제 두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오. 입력 두 정수 A와 B가 주어진다. (1 ≤ A, B ≤ 1015, A와 B의 차이는 최대 100,000) 출력 첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다. 둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다. 풀이 어려운 문제는 아니지만 처음에 실패를 2~3번해서 헤맸던 문제. 우선 제한 조건에 100,000까지 받을 수 있다했으므로 정수값인 int가 아닌 long로 선언해주어야 한다. 그리고 a와 b가 같은경우, a가 b보다 큰경우를 고려해서 반복문을 써주면 완료되는 문제. ㅇㅅㅇ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..

    [백준/5217번] 쌍의 합 (HSPC 2012) [Java]

    [백준/5217번] 쌍의 합 (HSPC 2012) [Java]

    문제 1보다 크거나 같고 12보다 작거나 같은 자연수가 주어졌을 때, 합이 n이 되는 두 수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 숫자가 두 번째 숫자보다 작아야 한다. 출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 숫자로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다. 입력 첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력 각 테스트 케이스마다 n을 만드는 쌍을 사전순으로 출력한다. n을 만드는 쌍이 없는 경우에는 아무것도 출력하지 않는다. 예제 ..

    [백준/14624번] 전북대학교(2017 전북대학교 프로그래밍 경진대회) [Java]

    [백준/14624번] 전북대학교(2017 전북대학교 프로그래밍 경진대회) [Java]

    문제 전북대학교의 심볼은 균형과 조화, 지성과 이상을 향한 방향성과 목표를 나타낸다. 절제된 한국적 아름다움을 꾸밈없는 소박함과 여백을 통해 시각화하였으며, 심볼의 방향에 따라 한국적인 대학, 학문에 정진하는 대학, 미래로 나아가는 대학의 의미를 포함하여 ‘성장을 넘어 성숙의 대학으로 나아가는 전북대학교’의 철학과 비전을 상징한다. 입력 정수 N (3≤N≤50)을 입력받는다. 출력 입력 N이 홀수인 경우 '*'을 이용해 가로의 길이가 N인 전북대학교 심볼을 출력한다. (예제 참고) 짝수인 경우, 'I LOVE CBNU'를 출력한다. 풀이 https://blue-boy.tistory.com/92 앞에서 내가 풀었던 '별 찍기-15'의 심화 버전이다. 심화버전이라해도 어려운 건 아니고 몇가지 규칙만 추가해주..

    [백준/15552번] 빠른 A+B [Java]

    [백준/15552번] 빠른 A+B [Java]

    문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..

    [백준/10991번] 별 찍기-16 [Java]

    [백준/10991번] 별 찍기-16 [Java]

    문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 for문 연습 기본 문제 앞의 빈칸을 미리 출력해준 뒤, 뒤의 별은 2로 나누어 떨어지면 빈칸 출력, 아니면 *출력으로 풀어준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import java.util.Scanner; class Bakjoon { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); int n=sc.nextInt(); for (int..

    [백준/10990번] 별 찍기-15 [Java]

    [백준/10990번] 별 찍기-15 [Java]

    문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 앞에서 나오는 공간을 카운트 해주는 first_count, 그리고 별과 별 사이의 공간을 카운트 해주는 변수 last_count를 선언해주고 first_count는 개행될때마다 -1씩 해주고 last_count는 +1씩해주면서 카운트가 끝날때마다 별 하나를 찍어준다. ㅇㅅㅇ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.Scanner; class Bakjoon { public static void main(String[] args) throws Exce..

    [백준/2556번] 별 찍기-14 [Java]

    [백준/2556번] 별 찍기-14 [Java]

    문제 지금까지 안나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 N개의 줄에 걸쳐 별을 적절히 찍는다. 풀이 처음에 문제를 읽었을 때 무슨 말이지...뭘 하라는거지...싶어서, 다른 사람들은 이해했는 지 궁금했다. 그래서 질문들을 좀 봤는데 역시나 모두 물음표를 수집하고 있었다. 어쨌든 질문들을 토대로 본결과 그냥 입력값만큼의 정사각형을 만들면 통과되는 문제 같았다. 어려운 문제는 아니어서 무리없이 풀 수 있었지만 문제가 도통 이해할 수 없었다. ㅇㅅㅇ 아래는 정답 코드입니다!! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.Scanner; class Bakjoo..

    [백준/ 16787번] マルバツスタンプ(JOI 2019) [Java]

    [백준/ 16787번] マルバツスタンプ(JOI 2019) [Java]

    Problem JOI 君はマルスタンプ,バツスタンプ,マルバツスタンプの3種類のスタンプをそれぞれ 0 個以上持っている.これらはマルやバツのマークを紙に印字することができるスタンプである. マルスタンプを使うとマルが 1 つ印字され,バツスタンプを使うとバツが 1 つ印字される.マルバツスタンプを使うとマルとバツが横一列に 1 つずつ印字され,スタンプの向きを変えることで,マルの右にバツが来るようにも,バツの右にマルが来るようにも印字できる. JOI 君は,持っているスタンプをそれぞれちょうど 1 回ずつ適当な順番で使い,紙に横一列にマルとバツを印字した.印字されたマルとバツの列は文字列 S で表される.S は O と X から構成された長さ N の文字列であり,S_i = O ならば JOI 君が印字したマークのうち左から i 番目のものがマルであることを表し,S_i = X な..

    [백준/2609번] 최대공약수와 최소공배수 [Java]

    [백준/2609번] 최대공약수와 최소공배수 [Java]

    문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 풀이 기본문제. 유클리드 호제법을 이용해서 풀면 간단하다. 최소공배수=a*b/최대공약수 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 import java.util.*; class Bakjoon { public static void main(String[] args) throws Exceptio..

    [백준/2747번] 피보나치 수 [Java]

    [백준/2747번] 피보나치 수 [Java]

    문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 45보다 작거나 같은 자연수이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 풀이 유명한 재귀함수 예제인 피보나치 수열문제이다. Fibonacci 함수를 만들어서 출력하면 끝이라고 ..

    [백준/10984번] 내 학점을 구해줘 [Java]

    [백준/10984번] 내 학점을 구해줘 [Java]

    문제 게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. 입력 첫 번째 줄에 학기의 수 T가 주어진다. 두 번째 줄부터 T개 학기에 대한 정보가 주어진다. 각 학기에 대한 정보는 다음과 같이 구성되어 있다. 첫 번째 줄에 들었던 과목의 수 N이 주어지고, 다음 N개 줄에 걸쳐서 N개 과목들의 학점 C와 성적 G가 주어진다. (1 ≤ N ≤ 10, 1 ≤ C ≤ 6의 정수) G는 {0, 0.7, 1, 1.3, 1.7, 2, 2.3, 2.7, 3, 3.3, 3.7, 4, 4.3} 중 하나이며 소수 부분은 최대 한 자리까지 주어진다. 출력 각 학기에 대해 근우의 총 학점과 평점(GPA)을 출력한다. 정답과의 절대 오차는 1..

    [백준/1550번] 16진수 [ Java]

    [백준/1550번] 16진수 [ Java]

    문제 16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. 출력 첫째 줄에 입력으로 주어진 16진수 수를 10진수로 변환해 출력한다. 예제 입력 1 복사 A 예제 출력 1 복사 10 풀이 정수 변환 함수인 Integer.parseInt()를 이용하면 쉽게 풀수 있다. ㅇㅅㅇ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.*; class Main { public static void main(String[] args) throws Exception..

    [백준/11050번] 이항 계수 1 [Java]

    [백준/11050번] 이항 계수 1 [Java]

    문제 자연수 N과 정수 K가 주어졌을 때 이항 계수 를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ N) 출력 를 출력한다. 풀이 이항 계수란 위의 정의와 같이 factorial을 이용한 공식으로써 factorial함수를 따로 지정해서 문제에 접근하면 수월하다. factorial의 함수를 만들고 이를 통해 위의 공식과 똑같이 연산을 진행해주면 정답입니다! ㅇㅅㅇ 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.*; class Main { public static void main(String[] args) throws Exception { ..

    [백준/10988번] 팰린드롬인지 확인하기 [Java]

    [백준/10988번] 팰린드롬인지 확인하기 [Java]

    문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 풀이 문자열을 받은 뒤 중간값을 mid로 선언하고 참인지 판단해주는 flag역할인 sw를 선언, 같으면 1을 반환하고 다르면 0을 반환한다. ㅇㅅㅇ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19..