본문 바로가기

분류 전체보기411

[Java] 프로그래머스 : 멀쩡한 사각형 programmers.co.kr/learn/courses/30/lessons/62048?language=java 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 접근 1. 주어진 값들을 좌표평면에 위치시키고 w와 h을 x, y로 인식해서 1차함수로 해석한다. 2. 좌표 상에 y값의 위치에 따라 칸을 센다. 3. 대칭이기 때문에 값을 두배 느낀점 처음에는 정말 감이 안 잡혀서 고민을 많이 했다. 다른 분의 코드를 찾아봤을 때 최대공약수로 푸는 분이 많으셔서 이해해보려고 노력했지만.. 2021. 4. 13.
[C] 백준 2750번 : 수 정렬하기 www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 접근 1. 입력받은 수들을 배열에 저장한다. 2. 선택정렬을 한다. 느낀점 쉬운 문제였지만 기본적인 알고리즘을 다시 짚고가는 계기가 된 문제였다. 코드 #include int main() { int n, i, j; scanf("%d", &n); int arr[1000] = { 0, }; for (i = 0;i < n;i++) { scanf("%d", &arr[i]); } for (i = 0; i < n; i++.. 2021. 4. 12.
[C] 백준 1436번 : 영화감독 숌 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 접근 1. 666이 들어간 숫자를 출력하기 위해서 665부터 검토한다. 2. 숫자가 ABCDE 5자리라면 순차적으로 CDE, BCD, ABC를 확인해서 666인지 체크하고 맞으면 cnt의 숫자를 늘린다. 3. 입력받은 값과 cnt의 숫자가 같다면 반복을 종료하고 그 숫자를 출력한다. 느낀점 처음에 엄청 간단한 문제인줄 알고 그냥 대충 출력했는데, 생각해보니 6660~6669 이런식의 숫자도 중간에 껴있었.. 2021. 4. 12.
[C] 백준 1018번 : 체스판 다시 칠하기 www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 접근 1. 8x8 크기를 찾기 위해 입력받은 값에서 7만큼을 뺀 횟수만큼 반복한다(가로, 세로 모두) 2. 8x8 크기이기 때문에 시작하는 인덱스부터 8회 반복한다. 3. 체스판의 시작이 검정이라고 가정하면 인덱스의 합이 짝수은 검정이고 홀수는 흰색 4. 인덱스와 해당 칸(배열)의 색을 비교해서 맞지 않으면 cnt를 올린다 5. 흰색 count와 검은색 count의 값을 비교해서 최소값을 찾는다 6.. 2021. 4. 11.
[C] 백준 7568번 : 덩치 www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 접근 1. 2차원 배열을 생성해서 값들을 입력 받는다. 2. 값을 비교해서 덩치가 더 큰게 있으면 순위가 올라간다. 느낀점 문제를 자세하게 읽지 않고 어떻게 모든 경우를 따질 지 생각했다. 하지만 문제 속에 정답이 있었다! 코드 #define _CRT_NO_SECURE_WARNING_ #include int main() { int arr[50][2] = { 0, }; int n; scanf(".. 2021. 4. 8.
[C] 백준 2231번 : 분해합 www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제 접근 1. 입력받은 값의 자릿수를 구한다. 2. 입력받은 값에서 자릿수*9한 값부터 따져서 가장 처음 걸리는 조건이 최솟값, 없으면 0을 출력 느낀점 처음에 백만까지 입력을 받았을 경우 어떻게 해야하나 고민을 많이 했다. 고민 끝에 분해합은 원래 숫자에서 각 자릿수를 더하는 것이기 때문에 한 자릿수당 최대 9만큼 빠질 수 있다. 따라서, n자릿수라고 했을 때 제일 작은 생성자는.. 2021. 4. 6.