코딩
[백준/2903번] 중앙 이동 알고리즘(COCI 2009/2010) [Java]
문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나 추가한다. 첫 단계에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다. 아래 그림은 과정을 총 2번 거쳤을 때 까지의 모습이다. 상근이는 어떤 점은 한 개 보다 많은 정사각형에 포함..
[백준/2566번] 최댓값 [Java]
문제 과 같이 9×9 격자판에 쓰여진 81개의 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 자연수가 주어진다. 주어지는 자연수는 100보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. 풀이 다중배열을 이용해서 풀면 쉬운문제. 값을 입력받을 때 max와 그에 따른 i,j값을 저장해서 그대로 출력하였다.ㅇㅅㅇ 1 2 3 4 5 6..
[Codeforce/round#611] Minutes Before the New Year [Java]
time limit per test 1 second memory limit per test 256 megabytes input: standard input output: standard output New Year is coming and you are excited to know how many minutes remain before the New Year. You know that currently the clock shows ℎh hours and 𝑚m minutes, where 0≤ℎℎ
052 - Accumulator Method Challenge 2 (optional)
Write a method header on line two with the following specs: Returns: a String Name: alphabetical Parameters: a String called str Purpose: Return a string that is composed of each letter as long as the letter is later on in the alphabet than its previous one. You can assume actual parameters are lowercase. See below examples. Additional Info: You can use to compare characters (not Strings..
[백준/10773번] 제로(CCC 2015 Senior Division) [Java]
문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..
[백준/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가 도출된..
[백준/17530번] Buffon(Maratona de Programação SBC 2019)[Java]
Problem The Kingdom of Matchings is governed by a generous commander. The commander’s fame and great qualities are known to all, including neighboring kingdoms. One of his most famous qualities is his good humor, which is nourished daily by a court buffoon, elected annually at the Great Comedy Contest (GCC) of the kingdom. The court buffoon helps to relieve all the tension of the various politic..
[백준/2676번] 라스칼 삼각형(2011 Greater New York Programming Contest )[Java]
문제 라스칼의 삼각형은 파스칼의 삼각형과 비슷하다. 라스칼의 삼각형에서 가장 윗 줄은 0번 줄이다. i번째 줄에는 i+1개의 숫자가 들어있고, 차례대로 0번부터 i번이다. R(i,j)는 i번 줄의 j번째 숫자이다. R(n,m) = 0 (n
045 - Accumulator Method Practice 1
Write a method header on line two with the following specs: Returns: an integer Name: sumToX Parameters: an integer called "x" Purpose: calculate the sum of the integers from 1 to x (including x) Examples: sumToX(5) ==> 15 sumToX(7) ==> 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.*; class Main { public static int sumToX(int x) { int sum=0; for(int i=1;i
[백준/10709번] 기상캐스터(JOI 2015)[Java]
문제 JOI시는 남북방향이 H 킬로미터, 동서방향이 W 킬로미터인 직사각형 모양이다. JOI시는 가로와 세로의 길이가 1킬로미터인 H × W 개의 작은 구역들로 나뉘어 있다. 북쪽으로부터 i 번째, 서쪽으로부터 j 번째에 있는 구역을 (i, j) 로 표시한다. 각 구역의 하늘에는 구름이 있을 수도, 없을 수도 있다. 모든 구름은 1분이 지날 때마다 1킬로미터씩 동쪽으로 이동한다. 오늘은 날씨가 정말 좋기 때문에 JOI시의 외부에서 구름이 이동해 오는 경우는 없다. 지금 각 구역의 하늘에 구름이 있는지 없는지를 알고 있다. 기상청에서 일하고 있는 여러분은 각 구역에 대해서 지금부터 몇 분뒤 처음으로 하늘에 구름이 오는지를 예측하는 일을 맡았다. 각 구역에 대해서 지금부터 몇 분뒤 처음으로 하늘에 구름이 오..
[백준/2822번] 점수 계산(COCI 2011/2012) [Java]
문제 상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오. 입력 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다. 출력 첫째 줄에..
[백준/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원을 상금으로 받게..
[백준/5598번] 카이사르 암호(JOI 2007 예선) [Java]
문제 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였습니다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건너뛰어 적었다고 합니다. 26개의 대문자 알파벳으로 이루어진 단어를 카이사르 암호 형식으로 3문자를 옮겨 겹치지 않게 나열하여 얻은 카이사르 단어가 있습니다. 이 카이사르 단어를 원래 단어로 돌려놓는 프로그램을 작성하세요. 각 문자별로 변환 전과 변환 후를 나타낸 건 아래와 같습니다. 예를 들어서, 이 방법대로 단어 'JOI'를 카이사르 단어 형식으로 변환한다면 'MRL'을 얻을 수 있고, 앞의 예와 같은 방법으로 얻은 카이사르 단어 'FURDWLD'를 원래 단어로..
[백준/5613번] 계산기 프로그램(JOI 2006) [Java]
문제 덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드시오. 입력 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출력한다. 주어지는 수는 108 이하의 양의 정수이다. 계산 중 결과는 0 또는 음수가 될 수 있지만, -108 ~ 108 범위를 넘지는 않는다. 또, 나눗셈에서 소수점은 버린다. 따라서, 100/3*3 = 99이다. 출력 첫째 줄에 계산 결과를 출력한다. 풀이 입력을 어떻게 받을까 고민하다가 우선 첫 숫자는 무조건 숫자이므로 받고 이후 문자, 정수값으로 번갈아가면서 받는 것으로 구상하였다. while문을 통해서 문자열값에 ..
[백준/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]
문제 짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기로 정했다. N개의 정수가 주어지면 홀수인지 짝수인지를 출력하는 프로그램을 만들어 경재의 능력을 검증할 수 있게 도와주자. 입력 첫 번째 줄에 숫자의 개수 N(1
[백준/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]
문제 1보다 크거나 같고 12보다 작거나 같은 자연수가 주어졌을 때, 합이 n이 되는 두 수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 항상 달라야 한다. 즉, 3,3은 올바른 쌍이 아니다. 또, 첫 번째 숫자가 두 번째 숫자보다 작아야 한다. 출력하는 쌍은 항상 사전순으로 출력해야 한다. 즉, 각 쌍의 작은 숫자로 비교를 해야 한다. 예를 들어 1,5는 2,4보다 사전순으로 앞선다. 입력 첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력 각 테스트 케이스마다 n을 만드는 쌍을 사전순으로 출력한다. n을 만드는 쌍이 없는 경우에는 아무것도 출력하지 않는다. 예제 ..
[백준/14624번] 전북대학교(2017 전북대학교 프로그래밍 경진대회) [Java]
문제 전북대학교의 심볼은 균형과 조화, 지성과 이상을 향한 방향성과 목표를 나타낸다. 절제된 한국적 아름다움을 꾸밈없는 소박함과 여백을 통해 시각화하였으며, 심볼의 방향에 따라 한국적인 대학, 학문에 정진하는 대학, 미래로 나아가는 대학의 의미를 포함하여 ‘성장을 넘어 성숙의 대학으로 나아가는 전북대학교’의 철학과 비전을 상징한다. 입력 정수 N (3≤N≤50)을 입력받는다. 출력 입력 N이 홀수인 경우 '*'을 이용해 가로의 길이가 N인 전북대학교 심볼을 출력한다. (예제 참고) 짝수인 경우, 'I LOVE CBNU'를 출력한다. 풀이 https://blue-boy.tistory.com/92 앞에서 내가 풀었던 '별 찍기-15'의 심화 버전이다. 심화버전이라해도 어려운 건 아니고 몇가지 규칙만 추가해주..
[백준/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..