Java

    [백준/2751번] 수 정렬하기 2 [Java]

    [백준/2751번] 수 정렬하기 2 [Java]

    문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 단순 정렬 문제. 하지만 시간초과가 있어서 애를 먹었다. 정렬을 이용해서 풀어야할 것같은데, 귀찮아서 처음에는 Array를 선언, Arrays.sort를 사용해서 풀어줫는데 시간초과가 나서 List를 이용해, Collections.sort를 사용해보았다. 이건 통과. Array보다 List가 더 빠르다는 것을 알 수 있었던 문제였다..

    [백준/10250번] ACM호텔(Daejeon Nationalwide Internet Competition 2014 ) [Java]

    [백준/10250번] ACM호텔(Daejeon Nationalwide Internet Competition 2014 ) [Java]

    문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

    [백준/10773번] 제로(CCC 2015 Senior Division) [Java]

    [백준/10773번] 제로(CCC 2015 Senior Division) [Java]

    문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..

    [백준/17173번] 배수들의 합(충남대 3회 생각하는 프로그래밍 대회)[Java]

    [백준/17173번] 배수들의 합(충남대 3회 생각하는 프로그래밍 대회)[Java]

    문제 신원이는 백준에서 배수에 관한 문제를 풀다가 감명을 받아 새로운 문제를 만들어보았다. 자연수 N과 M개의 자연수 Ki가 주어진다. Ki중 적어도 하나의 배수이면서 1 이상 N 이하인 수의 합을 구하여라. 입력 첫 번째 줄에 N과 M가 주어진다. (2 ≤ N ≤ 1000, 1 ≤ M < N) 그다음 줄에 M개의 정수 Ki가 주어진다. (2 ≤ Ki ≤ 1000) 동일한 Ki는 주어지지 않으며, 오름차순으로 정렬되어있다. 출력 배수들의 합을 출력한다. 풀이 정수 N을 선언받은 뒤 1부터 N까지의 수 중 따로 선언받은 M개의 정수 K에 나누어 떨어지는 수의 총합을 구하는 문제이다. 예를들어 N=10 M=2일때 K를 2와 3을 입력 받았다면 1~10중 2와 3으로 나누어떨어지는 수만을 더하면 42가 도출된..

    [백준/15740번] A+B - 9 [Java]

    [백준/15740번] A+B - 9 [Java]

    문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B (-1010000 ≤ A, B ≤ 1010000)가 주어진다. 출력 첫째 줄에 A+B를 출력한다. 서브태스크 1 (5점) 0 ≤ A, B ≤ 10 서브태스크 2 (10점) -100 ≤ A, B ≤ 100 서브태스크 3 (10점) 0 ≤ A, B ≤ 109 서브태스크 4 (15점) -109 ≤ A, B ≤ 109 서브태스크 5 (15점) 0 ≤ A, B ≤ 260 서브태스크 6 (20점) -260 ≤ A, B ≤ 260 서브태스크 7 (20점) 0 ≤ A, B ≤ 1010000 서브태스크 8 (5점) -1010000 ≤ A, B ≤ 1010000 풀이 처음에 단순 계산 문제인 줄 알고 당연하게 int..

    [백준/15803번] PLAYERJINAH’S BOTTLEGROUNDS (2018 SCCC Programming Contest)[Java]

    [백준/15803번] PLAYERJINAH’S BOTTLEGROUNDS (2018 SCCC Programming Contest)[Java]

    문제 한때 굉장히 유행하고 유명했던 게임, PLAYERJINAH’S BOTTLEGROUNDS는 FPS(First-Person Shooter) 장르의 게임이다. 전 세계적으로 많은 사람을 열광시킨 이 게임은 영화 Bottle Royale 을 모티브로 만들어졌다. 영화 Bottle Royale 에서는 한 학급의 학생들을 한 섬에 가두고, 그들에게 각자 병을 지급한 뒤, 단 한 명의 승자가 남을 때까지 서로 병 던지기를 시키는 내용이 나온다. 이 게임은 그와 비슷하게 100명의 플레이어가 각자 거대한 수송기에서 낙하산으로 낙하하여 한 명의 승자가 남을 때까지 진행된다. 이 게임을 즐기는 진아는 굉장한 실력의 게이머로서, 그녀의 실력은 화면 속의 적을 동시에 3명까지 맞춰 쓰러뜨릴 정도로 잘한다. 대신에 그녀가..

    [백준/3034번] 앵그리 창영(COCI 2006/2007) [Java]

    [백준/3034번] 앵그리 창영(COCI 2006/2007) [Java]

    문제 창영이는 화가나서 성냥을 바닥에 던졌다. 상근이는 바닥이 더러워진 것을 보고 창영이를 매우 혼냈다. 강산이는 근처에서 박스를 발견했다. 상덕이는 강산이가 발견한 박스를 상근이에게 주었다. 상근이는 박스에 던진 성냥을 모두 담아오라고 시켰다. 하지만, 박스에 들어가지 않는 성냥도 있다. 이런 성냥은 박스에 담지 않고 희원이에게 줄 것이다. 성냥이 박스에 들어가려면, 박스의 밑면에 성냥이 모두 닿아야 한다. 박스의 크기와 성냥의 길이가 주어졌을 때, 성냥이 박스에 들어갈 수 있는지 없는지를 구하는 프로그램을 작성하시오. 창영이는 성냥을 하나씩 검사한다. 입력 첫째 줄에 던진 성냥의 개수 N과 박스의 가로 크기 W와 세로 크기 H가 주어진다. (1 ≤ N ≤ 50, 1 ≤ W, H ≤ 100) 다음 N개..

    [백준/2822번] 점수 계산(COCI 2011/2012) [Java]

    [백준/2822번] 점수 계산(COCI 2011/2012) [Java]

    문제 상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오. 입력 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다. 출력 첫째 줄에..

    [백준/2480번] 주사위 세개 (한국 올림피아드 2010 중등부)[Java]

    [백준/2480번] 주사위 세개 (한국 올림피아드 2010 중등부)[Java]

    문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6*100으로 계산되어 600원을 상금으로 받게..

    [백준/10569번] 다면체 ( 2014 Pacific Northwest Region Programming Contest Division 2)[Java]

    [백준/10569번] 다면체 ( 2014 Pacific Northwest Region Programming Contest Division 2)[Java]

    문제 수학자가 구를 깎아서 볼록다면체를 만들었다. 이 수학자는 임의의 볼록다면체에 대해 (꼭짓점의 수) - (모서리의 수) + (면의 수) = 2가 성립한다는 것을 알고 있다. 그래서 구를 깎는 게 취미인 이 사람은 꼭짓점, 모서리와 면의 수를 기록할 때 꼭짓점과 모서리의 수만 세고 면의 수는 세지 않는다. 입력 첫 번째 줄에 1 이상 100 이하의 자연수 T가 주어진다. 다음 T개의 줄에 4 이상 100 이하의 자연수 V와 E가 공백을 사이에 두고 주어진다. V와 E는 각각 꼭짓점의 개수와 모서리의 개수이다. 출력 각 V와 E에 대해 볼록다면체의 면의 수를 한 줄에 하나씩 출력한다. 풀이 문제에서 V-E+x=2라고 제시해 주었으므로 x에 대해서 풀면 x=2-V+E이므로 그대로 끝. ㅇㅅㅇ 1 2 3 4..

    [백준/5597번] 과제 안 내신 분?(JOI 2007) [Java]

    [백준/5597번] 과제 안 내신 분?(JOI 2007) [Java]

    문제 X대학 M교수님은 프로그래밍 수업을 맡고 있습니다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있습니다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하세요. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)을 하나씩 입력합니다. 입력한 출석번호에 중복은 없으며, 순서에 상관없이 입력받을 수 있어야 합니다. 출력 출력은 2줄입니다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력하시면 됩니다. 예제 입력 1 3 1 4 5 7 .....(중간 생략) 29 30 예제 출력 1 2 8 풀이 불린..

    038 - Method Header Practice 3

    038 - Method Header Practice 3

    Write a method header on line two with the following specs: Returns: a String Name: makeCapital Parameters: a String named "name" You should not be writing code on any line other than #2 Solution 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.*; class Main { public static String makeCapital(String name){ return name.toUpperCase(); } //test case below (dont change): public static void Bakjoon(..

    035 - Sum Odds in Range

    035 - Sum Odds in Range

    You are given two inputs: int num1; int num2; You can assume that the following: num2 > num1 ==> TRUE You are to write a program that will calculate and print out the SUM OF ODD numbers in between num1 and num2 inclusive. Your output should all be on one line, separated by spaces. Sample input/output: #1: 3 #2: 11 Output: 35 #1: 4 #2: 20 Output: 96 #1: -2 #2: 6 Output: 8 Solution 1 2 3 4 5 6 7 8..

    [백준/5585번] 거스름돈 (JOI 2008 예선)[Java]

    [백준/5585번] 거스름돈 (JOI 2008 예선)[Java]

    문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 4개를 출력해야 한다. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 풀이 핵심은 반복문에서 동전의 처리이다. 500원->100원 ->50원->10원 순으로 진행하기 때문에 스위치 sw를..

    [백준/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..

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

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

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

    [백준/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'의 심화 버전이다. 심화버전이라해도 어려운 건 아니고 몇가지 규칙만 추가해주..

    [백준/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 な..