[ BOJ ] 2959 : 거북이 ( BRONZE 3 ) / Python
·
-- 예전 기록/BOJ
문제 거북이는 이제 어떤 것에도 흥미를 느끼지 않는다. 그 이유는 거북이가 300년동안 살았고, 그 동안 모든 것들을 다 해보았기 때문이다. 거북이는 시간을 떼우는 무엇인가를 하려고 한다. 이번 주말에 거북이는 거북이 세계에서 매우 유명한 게임인 "가장 큰 직사각형 만들기"를 해보려고 한다. 이 게임을 시작하기 전에 거북이는 양의 정수 네 개를 머릿 속에 생각해야 한다. 한 방향으로 움직이기 시작하고 90도 회전한 뒤에 새로운 방향으로 움직인다. 이런 식으로 세 번 90도 회전을 하고, 네 번 앞으로 움직여서 선분 네 개를 만들어야 한다. 거북이가 선분을 그릴 때 움직여야 하는 걸음의 수는 생각해 놓은 네 정수중 하나이다. 이때, 한 정수를 각각 한 번씩 사용해야 한다. 거북이가 정수를 사용하는 순서에 ..
[ BOJ ] 3059 : 등장하지 않는 문자의 합 ( BRONZE 3 ) / Python
·
-- 예전 기록/BOJ
문제 알파벳 대문자로 구성되어있는 문자열 S가 주어졌을 때, S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 구하는 프로그램을 작성하시오. 문자열 S가 “ABCDEFGHIJKLMNOPQRSTUVW” 일 때, S에 등장하지 않는 알파벳 대문자는 X, Y, Z이다. X의 아스키 코드 값은 88, Y는 89, Z는 90이므로 이 아스키 코드 값의 합은 267이다. 알파벳 대문자의 아스키 코드 값은 다음과 같다. 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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 입력 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번..
[ BOJ ] 14720 : 우유 축제 ( BRONZE 3 ) / Python
·
-- 예전 기록/BOJ
문제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다. 초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다. 바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다. 영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다. 영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다. 각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다. 각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다. 우유거리에는 사람이 많기 때문에 한 번 지나친 우유..
[ BOJ ] 3407 : 맹세 ( SILVER 2 ) / Python
·
-- 예전 기록/BOJ
문제 위대한 화학자 김선영은 그를 바라보며 굳은 맹세를 했다. 난 오늘부터 원소 기호로 이루어진 단어만을 말할 것이다. 선영이는 "I Am CLaRa"를 말할 수 있다. I 는 아이오딘, Am은 아메리슘, C는 탄소, La는 란타넘, Ra는 라듐이다. 또, 선영이는 "InTeRnAtIONAl"도 말할 수 있다. 하지만, "collegiate", "programming", "contest"는 원소 기호로 이루어진 단어가 아니기 때문에 말할 수 없다. 단어가 주어졌을 때, 선영이가 말할 수 있는 단어 인지 (원소 기호가 연결된 단어) 아닌지를 구하는 프로그램을 작성하시오. (대소문자는 가리지 않는다) 다음은 이 문제에서 사용하는 원소 주기율표이다. H He Li Be B C N O F Ne Na Mg Al ..
[ BOJ ] 16458 : 가장 큰 숫자 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
문제 여러 개의 숫자들이 주어졌을 때, 이들 중 가장 큰 숫자를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 n, m(15 ≤ n ≤ m ≤ 1000)이 주어진다. 다음 n개의 줄에는 공백(' ')과 별 표('*')로 이루어진 숫자들이 주어진다. 각 줄마다 총 m개의 문자가 있다. 모든 숫자들은 어떤 자연수 k에 대해 가로 3k, 세로 5k 크기의 직사각형에 딱 맞게 들어가고, 이 직사각형을 다시 15개의 k × k 정사각형들로 분할할 경우 각 정사각형 안의 문자들은 모두 공백 혹은 별 표 중 한 종류로만 이루어져 있음이 보장된다. 위에서 언급한 숫자를 포함하는 직사각형들에 대해, 어떤 직사각형도 서로 겹쳐져 있지 않다. 또한 어떤 직사각형도 상하좌우 혹은 대각선 방향으로 맞닿아 있지 않다. 가장 큰..
[ BOJ ] 10172 : 개 ( BRONZE 5 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 아래 예제와 같이 개를 출력하시오. 입력 없음. 출력 개를 출력한다. 풀이 과정 고양이 문제와 마찬가지로 이스케이프 시퀀스를 다루는 문제이다. 예시 출력과 동일하게 출력할 수 있도록 코드를 작성하자. C #include int main(void) { printf("|\\_/|\n"); printf("|q p| /}\n"); printf("( 0 )\"\"\"\\\n"); printf("|\"^\"` |\n"); printf("||_/=\\\\__|\n"); return 0; } C++ #include using namespace std; int main(void) { cout
[ BOJ ] 25107 : Letters ( SILVER 3 ) / Python
·
-- 예전 기록/BOJ
문제 Martin is attending a lecture on linear algebra. It is needless to say that the professor who is giving the lecture is the most boring person in the entire universe. There is a $N × M$ matrix written on the blackboard. Some of the entries in the matrix are letters (of the English alphabet) while some other entries are blank. Here is an example of such a matrix of size $6 × 8$: $\begin{bmatrix..
[ BOJ ] 10171 : 고양이 ( BRONZE 5 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 아래 예제와 같이 고양이를 출력하시오. 입력 없음. 출력 고양이를 출력한다. 풀이 과정 이스케이프 시퀀스를 다루는 문제이다. 예시 출력과 동일하게 출력할 수 있도록 코드를 작성하자. C #include int main(void) { printf("\\ /\\\n"); printf(" ) ( \')\n"); printf("( / )\n"); printf(" \\(__)|"); return 0; } C++ #include using namespace std; int main(void) { cout
[ BOJ ] 11382 : 꼬마 정민 ( BRONZE 5 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다! 입력 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. 출력 A+B+C의 값을 출력한다. 풀이 과정 수 범위가 크니 자료형에 유의해서 A, B, C 를 입력받고 A+B+C 를 출력하자. C #include int main(void) { long long a, b, c; scanf("%lld %lld %lld", &a, &b, &c); printf("%lld", a+b+c); return 0; } C++ #include using namespace std; int main(void) { long long a, b, c; cin >> a >> b >> ..
[ BOJ ] 13909 : 창문 닫기 ( SILVER 5 ) / Python
·
-- 예전 기록/BOJ
문제 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 이러한 행동을 N번째 사람까지 진행한 후 열려 있는 창문의 개수를 구하라. 단, 처음에 모든 창문은 닫혀 있다. 예를 들어 현재 3개의 창문이 있고 3명의 사람이 있을 때, 1번째 사람은 1의 배수인 1,2,3번 창문을 연다. (1, 1, 1) 2번째 사람은 2의 배수인 2번 창문을 닫는다. (1, 0, 1) 3번째 사람은 3의 배수인 3번 창문을 닫는다. (1, 0, 0) 결과적으로 마지막에 열려 있는 창문의 개수는 1개 이다. 입력 첫 번째 줄에는 창문의..
[ BOJ ] 2588 : 곱셈 ( BRONZE 3 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다. 출력 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. 풀이 과정 (3) - (1)과 (2)의 일의 자리 수를 곱한 값 (4) - (1)과 (2)의 십의 자리 수를 곱한 값 (5) - (1)과 (2)의 백의 자리 수를 곱한 값 (6) - (1)과 (2)를 곱한 값 이를 차례대로 출력한다. C #include int main(v..
[ BOJ ] 16139 : 인간-컴퓨터 상호작용 ( SILVER 1 ) / Python
·
-- 예전 기록/BOJ
문제 승재는 인간-컴퓨터 상호작용에서 생체공학 설계를 공부하다가 키보드 자판이 실용적인지 궁금해졌다. 이를 알아보기 위해 승재는 다음과 같은 생각을 했다. '문자열에서 특정 알파벳이 몇 번 나타나는지 알아봐서 자주 나타나는 알파벳이 중지나 검지 위치에 오는 알파벳인지 확인하면 실용적인지 확인할 수 있을 것이다.' 승재를 도와 특정 문자열 S, 특정 알파벳 alpha와 문자열의 구간 [l,r]이 주어지면 S의 l번째 문자부터 r번째 문자 사이에 alpha가 몇 번 나타나는지 구하는 프로그램을 작성하여라. 승재는 문자열의 문자는 0번째부터 세며, l번째와 r번째 문자를 포함해서 생각한다. 주의할 점은 승재는 호기심이 많기에 (통계적으로 크게 무의미하지만) 같은 문자열을 두고 질문을 q번 할 것이다. 입력 첫..