전체 글 465

[ BOJ ] 4740 : 거울, 오! 거울 ( BRONZE 3 ) / C, Python

문제 근하와 세용이는 주차장에서 자신들의 차 뒤에 주차된 구급차에 쓰여있는 ECNALUBMA라는 알 수없는 글자를 보고 갸우뚱하였다. 그리고 그들이 차에 탄 뒤 백미러를 통해 보고서야 그 글자가 AMBULANCE라는 것이였음을 알고는 웃음을 참을 수 없었다. 근하와 세용이는 뒤늦게서야 각각의 문자의 위치가 거꾸로 되어버린 이 글자들을 자신들도 모르는 사이에 머릿속에서 올바른 글자가 되도록 수정작업을 하며 애를 쓰고 있었음을 깨달았다. 이 경험을 통해 흥미를 가지게 된 근하와 세용이는, 문장을 입력하면 입력한 문장의 개별 단어들을 역순으로 배치하여 거꾸로 바뀐 문장을 출력하는 프로그램을 만들어 '거울 읽기' 연습을 하려고 마음먹었다. 입력 하나 또는 그 이상의 줄에 각각 ASCII 글자로 나타낼 수 있는 ..

[ BOJ ] 23037 : 5의 수난 ( BRONZE 2 ) / C, Python

문제 키파는 문득 3과 4의 견고한 벽에 가로막혀 스포트라이트를 받지 못하는 5를 떠올렸다. '세상에 얼마나 많은 것들이 5와 관련이 있는데!' 키파는 5가 쓰이는 곳을 떠올리기 시작했다. 사람의 손가락도 5개, 정다면체의 개수도 5개, 알려진 불가촉 홀수는 5뿐이고, 별은 보통 오각별, 그리고 무엇보다 "별이 다섯 개!" 그러자 문득 키파는 자신의 마음 속에서 다섯제곱을 하고 싶은 욕망이 올라오는 것을 느꼈다. 키파를 위해, 다섯 자리 수를 입력받아, 각 자릿수의 다섯제곱의 합을 출력하는 프로그램을 작성해 주자. 입력 첫째 줄에 다섯 자리인 양의 정수 n이 주어진다. 주어지는 n은 10^4 ≤ n < 10^5을 만족한다. 출력 첫째 줄에 각 자릿수의 다섯제곱의 합을 출력하라. 풀이 과정 자릿수를 하나하..

[ BOJ ] 2386 : 도비의 영어 공부 ( BRONZE 2 ) / C, Python

문제 꿍은 도비의 자유를 위해 영어를 가르치기로 결심했다. 하지만 도비는 바보라 ABC부터 배워야 한다. 그래서 꿍은 영어 문장과 알파벳 하나가 주어지면 그 알파벳이 문장에서 몇 번 나타나는지를 세는 문제들을 내주었다. 하지만 도비는 마법사고 컴공도 마법사다. 여러분은 도비를 위해 문제의 답을 알려주는 프로그램을 만들수 있을것이다! 입력 입력은 몇 개의 줄들로 이루어진다. 각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어진다. 각 문장은 길이가 1에서 250이며 입력의 마지막은 #이다. 출력 출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다. 풀이 과정 # 글자가 입력될 때 ..

[ BOJ ] 2563 : 색종이 ( SILVER 5 ) / C, Python

문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이고, 두 번째 자연수는 색종이의 아래..

[ BOJ ] 1259 : 팰린드롬수 ( BRONZE 1 ) / C, Python

문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. 출력 각 줄마다 주어..

[ BOJ ] 5598 : 카이사르 암호 ( BRONZE 2 ) / C, Python

문제 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건너뛰어 적었다고 한다. 26개의 대문자 알파벳으로 이루어진 단어를 카이사르 암호 형식으로 3문자를 옮겨 겹치지 않게 나열하여 얻은 카이사르 단어가 있다. 이 카이사르 단어를 원래 단어로 돌려놓는 프로그램을 작성하시오. 각 문자별로 변환 전과 변환 후를 나타낸 건 아래와 같다. 변환전 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 변환후 D E F G H I J K L M N O P Q R S T U V W X Y Z A B..

[ BOJ ] 11586 : 지영 공주님의 마법 거울 ( BRONZE 3 ) / C, Python

문제 천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려워한다. 그래서 하루에도 수십 수백 번씩 거울을 보며 자신의 모습이 여전히 아름다운지 확인을 거듭한다. 그러던 어느 날, 세상의 다양한 장면들을 담고 싶었던 공주님의 마법거울은 매일 똑같은 모습만을 비추는 자신의 운명에 좌절하며 앞으로의 운명을 개척하기로 결심했다. 마법거울은 매일 자신의 심리상태에 따라 거울에 비친 공주님의 모습을 좌/우 또는 상/하로 반전시켜 비추기로 한다. 마법거울의 심리상태는 1부터 3까지의 자연수로 표현할 수 있으며, 숫자가 클수록 더 화가 난 상태를 의미한다. 마법거울의 심리상태가 1일 때는..

[ BOJ ] 9655 : 돌 게임 ( SILVER 5 ) / C, Python

문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 풀이 과정 돌이 1개 남았을 때 : 상근이가 돌 1개 가져감 ( 상근 승리 ) 돌이 2개 남았을 때 : 상근이가 돌 1개, 창영이가 돌 1개 가져감 ( 창영 승리 ) 돌이 3개 남았을 때 : 상근이가 돌 3개 가져감 ( 상근 승리 ) 돌이..

[ BOJ ] 2798 : 블랙잭 ( BRONZE 2 ) / C, Python

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, ..

[ BOJ ] 2566 : 최댓값 ( BRONZE 3 ) / C, Python

문제 과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 3 23 85 34 17 74 25 52 65 10 7 39 42 88 52 14 72 63 87 42 18 78 53 45 18 84 53 34 28 64 85 12 16 75 36 55 21 77 45 35 28 75 90 76 1 25 87 65 15 28 11 37 28 74 65 27 75 41 7 89 78 64 39 47 47 70 45 23 65 3 41 44 87 13 82 38 31 12 29 29 80 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력..