문제 URL: www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 다음 문제는 첫째 줄부터 8개의 줄에 체스판의 상태가 주어졌을 때 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램이다. 이 문제는 각 줄을 string 문자열로 입력받고 문자열의 요소 중 F가 있는지 확인하는 방식으로 풀었는데, 여기서 문자열의 요소가 F라고 해도 이 문자가 몇 번째 줄 문자열인지, 문자열 중 몇 번째 문자인지에 따라 결과값이 달라진다. 가장 왼쪽 위칸(0,0)이 하얀색이기 ..
문제 URL: www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 다음 문제는 x지점부터 정확히 y지점으로 이동하는데 필요한 공간 이동 장치 작동 횟수의 최솟값을 구하는 프로그램으로 공간이동 장치는 이전 작동 시기에 k광년을 이동하였을 때 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다. 문제 풀이는 다음과 같다. 처음과 끝이 반드시 1광년 이어야 하므로 이동 횟수의 최솟값을 구하려면 처음과 끝이 대칭 형태로..
문제 URL: www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 다음 문제는 N 번째 손님에게 배정되어야 하는 방 번호를 출력하는 프로그램으로 2차원 배열을 이용하여 풀이했다. H × W 형태 호텔 H: 행(맨 아래부터 1행으로 지정) W: 열(맨 왼쪽부터 1열으로 지정) n: 손님 번호 Y: 층 수 X: 엘리베이터에서부터 세었을 때의 번호 (방 번호는 YXX 나 YYXX 형태) 풀이과정은 아래와 같다. 손님들은 하나의 열부터 차례대로 채워짐.→ ..
문제 URL: www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 다음 문제는 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력하는 문제이다. A: 고정비용 B: 가변비용 C: 판매비용 n: 손익분기점에서의 판매량 이 문제는 다음과 같은 과정을 거쳐 풀었는데, 먼저 총수입(판매비용)이 총비용(=고정비용+가변비용)보다 많아지게 될 때의 식을 C*n > A+B*n로 나타내었다. 여기서 n은 위 식에서 좌변과 우변을 같다고 놓았을 때 나온 값보다 큰 정수 이어야 하므로 ..
문제 URL: www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 다음 문제는 설탕 봉지의 최소 개수를 출력하는 프로그램이다. n: 설탕의 kg a: 5kg 봉지 개수 b: 3kg 봉지 개수 구해야 하는 결과: a+b 결과를 구하기 위해 다음과 같은 과정을 거쳤다. n = 5a+3b로 나타낼 수 있음. 3kg 봉지 5개는 5kg 봉지 3개로 더 적게 표현 가능함.→ 3kg 봉지는 4 봉지까지 존재할 수 있음. 따라서 b에 들어갈 수 있는 수는 0~4 n과 b를 알기 때문에..
문제 URL: www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 다음 문제는 "a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다"는 규칙이 있어서 이를 만족하기 위해 일단 2차원 배열을 만들어 각각의 요소에 해당하는 값을 넣어주었다. 먼저 층을 행, 호를 열로 생각(0층을 포함하여)하여 15x14인 2차원 배열을 선언하고, 0층은 i호에 i명이 거주하므로 0행 1~14호(0~13열)에 1~14까지의 숫자를 대입하였다. 또한 각 층의 1호..
문제 URL: www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 다음 문제는 입력받은 단어들 중 그룹 단어의 개수를 출력하는 프로그램으로 그룹 단어란, 단어에 존재하는 모든 문자에 대해서 각 문자가 연속해서 나타나는 단어이다. 이 문제에서 문자열에 같은 요소가 있는지를 파악하기 위해 find() 함수를 사용했다. 만약 문자열에 같은 요소가 존재한다면 두 가지 경우를 생각해주어야 하는데, find() 함수의 인수로 들어간 요소와 ..
문제 URL: www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 다음 문제는 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램이다. 문자형 변수를 선언하고, 문자형 변수를 정수형 변수에 다시 대입하여 주어진 문자의 아스키 코드표를 구하는 방식으로 문제를 풀이했다. #include using namespace std; int main() { char ch; cin >> ch; int asc = ch; cout
문제 URL: www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 다음 문제는 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진 상태에서 이 문자열에 단어가 몇 개 있을지 구하는 프로그램으로 stringstream 객체를 이용하여 문제를 풀었다. 먼저 getline() 함수로 띄어쓰기를 포함한 문자열을 입력 받고, stringstream 객체를 통해 띄어쓰기를 기준으로 단어들을 분리하여 string 객체인 word에 단어들을 저장해주었다. 이 과정이 반..
문제 URL: www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 다음 문제는 달팽이는 낮에 A미터 올라가고, 밤에는 B미터 미끄러지는 달팽이가 높이가 V미터인 나무 막대를 모두 오르려면 며칠이 걸리는지 구하는 프로그램을 작성하는 문제로, 달팽이가 정상에 도달하면 미끄러지지 않는다는 조건이 있다. 이 문제를 처음에 풀 때는 반복문을 사용하여 풀었는데 시간초과가 떴었는데, 알고보니 시간 제한이 0.15초인 문제였다. 정답률이 왜 낮았는지 그제야 이해가 됐다.. 더보기 반복문을 사용한 코드 #include using nam..