전체 글 465

[ BOJ ] 1546 : 평균 ( BRONZE 1 ) / C, C++, Python, Java

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..

[ BOJ ] 15680 : 연세대학교 ( BRONZE 5 ) / C, Python

문제 연세대학교의 영문명은 YONSEI, 슬로건은 Leading the Way to the Future이다. 이를 출력하는 프로그램을 작성해보도록 하자. 입력 첫째 줄에 N이 주어진다. (N = 0 또는 1) 출력 N = 0일 경우: 연세대학교의 영문명을 출력한다. N = 1일 경우: 연세대학교의 슬로건을 출력한다. 대소문자 구별에 주의하도록 하자. 풀이 과정 입력으로 들어오는 N이 0일 경우 YONSEI 를, N이 1일 경우 Leading the Way to the Future 를 출력한다. C #include int main(void) { int n; scanf("%d", &n); if (n == 0) printf("YONSEI"); else printf("Leading the Way to the F..

[ BOJ ] 10811 : 바구니 뒤집기 ( BRONZE 2 ) / C, C++, Python, Java

문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 역순으로 만들려고 한다. 도현이는 한 번 순서를 역순으로 바꿀 때, 순서를 역순으로 만들 범위를 정하고, 그 범위에 들어있는 바구니의 순서를 역순으로 만든다. 바구니의 순서를 어떻게 바꿀지 주어졌을 때, M번 바구니의 순서를 역순으로 만든 다음, 바구니에 적혀있는 번호를 가장 왼쪽 바구니부터 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주..

[ BOJ ] 3052 : 나머지 ( BRONZE 2 ) / C, C++, Python, Java

문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 풀이 과정 1,000보다 작거나 같고 음이 아닌 정수를 42로 나누면, 나올 수 있는 수는 0부터 41까지 총 42개 이다. 서로 다른 나머지의 개수를 구해야 하므로, 크기가 42인 배열을 선언하여 들어..

[ BOJ ] 15733 : 나는 누구인가 ( BRONZE 5 ) / C, Python

문제 당신은 지금 코딩을 하고있다. 그럼 당신은 어떤 사람인가. 입력 없다. 출력 “I'm Sexy”를 출력한다. 풀이 과정 문제 출력에 따라 I'm Sexy 를 출력한다. C #include int main(void) { printf("I'm Sexy"); return 0; } #include int main(void) { printf("I\'m Sexy"); return 0; } 이스케이프 시퀀스를 이용해 ' 를 입력함으로써 발생할지 모르는 에러를 방지해주어도 AC를 받는다. Python print("I'm Sexy")

[ BOJ ] 14645 : 와이버스 부릉부릉 ( Bronze 5 ) / C, Python

문제 버스 운전수 비와이 씨가 운전하는 버스(verse아님 ㅎ)는 N개의 정거장을 거친 후 종착역에 도착한다. 각 정거장은 내릴 인원수와 올라탈 인원수가 정해져 있다. 종착역에 도착하면 버스에 타고 있던 모든 사람이 내린다. 입력 첫 줄에 출발역과 종착역을 제외한 정거장의 수 N(1 ≤ N ≤ 100,000)과 출발역에서 탑승하는 사람의 수 K(1 ≤ K ≤ 10,000)가 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 i번째 정거장에서 탑승하는 인원 A와 하차하는 인원 B가 주어진다. (0 ≤ A, B ≤ 10,000) 출력 종착역에 도착했을 때, 버스 운전수의 이름을 출력해라. 풀이 과정 문제를 천천히 읽다보면..... 마치 SNS에 떠돌아다니는 문제마냥 입력과 관계없이 버스 운전수의 이름을 출..

[ BOJ ] 17492 : 바둑알 점프 ( GOLD 4 ) / Python

문제 바둑알 점프는 판 위에 있는 바둑알을 하나만 남기고 모두 없애는 게임이다. 바둑알은 가로, 세로, 대각선으로 인접한 바둑알 하나를 점프하여 움직일 수 있다. 움직였을 때, 뛰어넘은 바둑알은 없어진다. 이때 뛰어넘을 바둑알이 없으면 움직일 수 없다. 예를 들어, [그림1]에서 왼쪽 상단 바둑알을 오른쪽 하단 대각선 방향으로 움직이면 [그림2] 와 같이 된다. [그림3]에서 오른쪽 하단에 있는 바둑알은 뛰어 넘을 바둑알이 없으므로 움직일 수 없다. 바둑알이 놓이는 판은 N × N의 정사각 행렬이고 한 칸은 1 × 1 행렬이다. 판은 빈 칸 혹은 벽으로 구성된다. 바둑알은 항상 빈 칸으로만 이동할 수 있고 벽을 뛰어넘을 수 없다. 바둑알이 없어진 칸은 빈 칸이 된다. 바둑알 점프는 바둑알 하나를 골라 점..

[ BOJ ] 2011 : 암호코드 ( GOLD 5 ) / Python

문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 다시 영어로 바꾸면, "BEAAD", "YAAD", "YAN", "YKD", "BEKD", "BEAN" 총 6가지가 나오는데, BEAN이 맞는 단어라는건 쉽게 알수 있잖아? 선영: 예가 적절하지 않았네 ㅠㅠ 만약 내가 500자리 글자를 암호화 했다고 해봐. 그 때는 나올 수 있는 해석이 정말 많은데, 그걸 ..

[ BOJ ] 25048 : 랜선 연결 ( GOLD 2 ) / Python

문제 최근 연구실 위치를 옮긴 은규와 연구실 사람들은 큰 난관에 봉착했습니다. 그것은 바로 이사한 연구실에 인터넷이 연결되지 않는다는 것입니다! 다행히도 이웃 연구실에서 인터넷이 연결된 랜선 한 가닥을 얻을 수 있었고, 이 랜선을 연구실에 있는 스위치에 잘 연결해서 인터넷을 연결할 수 있게 되었습니다. 현재 연구실에는 N개의 스위치(Network Switch)와 M개의 컴퓨터가 있습니다. 각 스위치는 a_i개의 포트가 있고 b_i의 설치 비용이 듭니다. 스위치에서 컴퓨터로 인터넷을 공급하기 위해서는 1개의 인터넷이 공급된 선이 연결되어야 하며 a_i -1개의 다른 기기(스위치 혹은 컴퓨터)에 인터넷을 공급할 수 있습니다. 스위치끼리 사이클을 형성하는 것은, 화재의 위험이 있기 때문에 불가능합니다. 은규는..