1. 문제 상세 https://www.acmicpc.net/problem/2720 2. 문제 접근 입력받은 5달러 이하의 금액을 해당 금액에 맞는 개수의 동전으로 바꾸자. (1달러 = 100센트) 거스름돈을 25로 나눈 몫을 출력한다. 그리고 그 몫에 25를 곱한 값을 거스름돈에서 뺀다. 거스름돈을 10으로 나눈 몫을 출력한다. 그리고 그 몫에 10을 곱한 값을 거스름돈에서 뺀다. 거스름돈을 5로 나눈 몫을 출력한다. 그리고 그 몫에 5를 곱한 값을 거스름돈에서 뺀다. 거스름돈을 1로 나눈 몫을 출력한다. 그리고 그 몫에 1을 곱한 값을 거스름돈에서 뺀다. 3. 문제 풀이 #include using namespace std; int main() { int t, c, coin[4] = {25, 10, 5,..
백준 - 단계별로 풀어보기
1. 문제 상세 https://www.acmicpc.net/problem/11005 2. 문제 접근 문제 2745번 : 진법 변환 의 반대이다. 이번에는 10진법 숫자와 진법을 입력받아 해당 진법으로 바꿔 출력한다. 예시로 60466175 를 36진법으로 변환하는 방법을 알아보자. 36진법은 한 자리에 0~35까지의 숫자를 사용한다. 9가 넘어가는 숫자는 10 : A, 11 : B, 12 : C 와 같이 알파벳 대문자로 나타낸다. 변환시, 60466175를 36으로 나눈다. 나눈 나머지를 변환 할 36진법 수 맨 뒷자리로 한다. 나머지 값이 35인데, 35는 Z 로 표시하여 마지막 자리는 Z 가 된다. 이렇게 나눈 몫을 다시 36으로 나눈 나머지를 그 앞 자리로 하고, 다시 나누고 자리수를 표시하기를 몫..
1. 문제 상세 https://www.acmicpc.net/problem/2745 2. 문제 접근 먼저 B진법 수 N을 문자열 형태로 입력받자. 조건과 같이 입력받은 문자열에서 문자들을 확인하여 0~9 와 A~Z 의 문자를 숫자로 변환하여 계산하기 위해서 문자들의 아스키코드 값을 활용하자. 문자가 0~9 인 경우, '0' 값을 빼주어 문자에서 숫자 0~9가 되고, A~Z 인 경우 55를 빼주어 A : 10, B : 11, ... Z : 35 가 되도록 한다. 문자열의 총 길이를 구한 후 0부터 문자열의 길이 - 1 까지의 수를 입력받은 B의 지수로 사용한다. B의 0제곱부터 문자열의 길이 - 1제곱의 값과 위의 문자열의 문자를 숫자로 변환한 값을 뒷자리부터 앞으로 순서대로 곱해준다. 그리고 그 값들을 모..
1. 문제 상세 https://www.acmicpc.net/problem/2563 2. 문제 접근 크기가 100*100인 정수 배열을 선언하여 색종이가 덮이지 않은 부분을 0, 덮인 부분을 1로 판단하자. 색종이의 개수를 입력받아 그만큼 반복문을 실행한다. 반복문에서 도화지에 색종이를 놓을 좌표를 입력받는다.값에 3, 7을 입력 받은 경우, 배열의 7번 행 3번 열부터 부터 이를 기준으로 16번행, 7번행 까지 사각형으로 배열의 원소들을 1로 바꾼다.위와 같이 좌표에 따라 배열의 원소 값을 바꿔준 후, 배열을 순회하며 배열의 값이 1인 경우, 넓이를 저장할 변수에 1을 더해주자. 3. 문제 풀이 #include using namespace std; int main() { int a[100][100] = ..
1. 문제 상세 https://www.acmicpc.net/problem/10798 2. 문제 접근 최대 15*5 크기의 행렬을 입력받고, 이 행렬의 원소들을 열의 1행, 2행, .. 5행, 2열의 1행, 2행, ..5행 과 같이 출력하자. 기존에 행렬을 출력할때는 행-열 순으로 출력했는데 이번에는 열-행 순으로 출력하자. 그리고, 15*5 크기의 행렬에서 입력받지 않은 부분은 출력하지 않도록 한다. char형 배열 선언 시 배열에 기본으로 '\0' 값이 저장된다. 따라서 출력에서 문자가 '\0' 인지 확인하고 출력한다. (여기서 주의할 점★, char 배열을 지역변수로 선언 시 자동 초기화가 되지 않아 기본 값으로 이상한 값들이 들어간다. 따라서 선언할 때 전역변수로 선언하거나 배열을 배열[n][m] ..
1. 문제 상세 https://www.acmicpc.net/problem/2566 2. 문제 접근 행렬을 돌며 값을 비교해 최대값 변수에 저장하고, 저장할 때 해당 배열의 인덱스를 저장하자. 모든 정수를 비교했다면 최대값과 저장해둔 인덱스 번호에 1을 더한 값을 출력한다. 3. 문제 풀이 #include using namespace std; int main() { int a[9][9], max = 0, row, col; for(int i = 0; i > a[i][j]; for(int i = 0; i = max) { max = a[i][j..