문제 링크 색종이 문제 요약 각각 1~6cm 색종이의 개수를 입력으로 갖는다. 가로, 세로의 길이가 각각 6cm인 판 위에 입력 받은 색종이들을 모두 붙여야 한다. 이 때 필요한 최소한의 판의 개수를 출력하는 문제이다. 조건문 문제가 조금 까다로워 보이지만 조건문만 논리적으로 잘 세워주면 쉽게 풀 수 있다. 6cm : 개수만큼 판의 개수를 늘려주면 된다. 5cm : 한 판마다 1cm 색종이가 11개씩 더 들어갈 수 있다. 4cm : 한 판마다 2cm 색종이가 5개씩 더 들어갈 수 있다. 3cm : 한 판마다 2cm 색종이 1개, 1cm 색종이 5개씩 더 들어갈 수 있다. 2cm : 1cm 4개로 치환된다. 1cm : 한 판마다 36개씩 들어갈 수 있다. 문제 해답 #include using namespa..
문제 링크 보물섬 문제 요약 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 가로, 세로의 크기는 각각 50이하이다. 첫째 줄에 보물이 묻혀 있는 두 곳 사이를 최단 거리로 이동하는 시간을 출력한다. BFS 큐에 있는 모든 좌표 (x,y)를 다음과 같은 조건을 만족하는지 체크해준다. arr 범위 밖이라면 continue 방문했던 좌표라면 continue 'W'라면 continue 현재 좌표에서 동 서 남 북 좌표가 위의 세 가지 조건에 비교한 뒤, 큐에 넣어주고 depth를 1 더해준다. 위의 루틴을 큐가 빌 때까지(empty) 실행한 뒤 dep..
문제 링크 곱셈 문제 요약 곱셈의 과정을 모두 출력해주어야 한다. 함수 설명 OnePrint : 두 번째 input의 일의 자리 숫자를 리턴하는 함수 TenPrint : 두 번째 input의 십의 자리 숫자를 리턴하는 함수 HunPrint : 두 번째 input의 백의 자리 숫자를 리턴하는 함수 문제 해답 #include using namespace std; int OnePrint(int a); int TenPrint(int a); int HunPrint(int a); int main() { int a, b; cin >> a >> b; cout
문제 링크 대표값2 문제 요약 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작은 10 의 배수이다. 첫째 줄에는 평균을 출력하고, 둘째 줄에는 중앙값을 출력한다. 평균과 중앙값은 모두 자연수이다. 배열 사용 입력은 모두 10의 배수이므로 크기가 10인 배열에 입력/10 index를 추가시켜준다. 배열에서 (3번째로 큰 인덱스 * 10)을 출력해준다. 문제 해답 #include #include using namespace std; const int SIZE = 10 + 1; int arr[SIZE]; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int x; int..
문제 링크 로마 숫자 문제 요약 첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같다. 입력으로 주어진 두 수를 더한 값을 첫째 줄에 아라비아숫자로 출력하고 둘째 줄에는 로마 숫자로 출력한다. 함수 설명 strNum : 로마 숫자를 아라비아 숫자로 바꿔주는 함수 numStr : 아라비아 숫자를 로마 숫자로 바꿔주는 함수 문제 해답 #include #include using namespace std; #define I 1 #define V 5 #define X 10 #define L 50 #define C 100 #define D 500 #define M 1000 int strNum(string str1); void numStr(int res); int..
문제 링크 비슷한 단어 문제 요약 첫째 줄에는 단어의 개수가 주어지고 둘째 줄부터는 한 줄에 하나씩 단어가 주어진다. 모든 단어는 영문 알파벳 대문자로 이루어져 있다. 단어의 개수는 100개 이하이며, 각 단어의 길이는 10 이하이다. 한 단어에서 한 문자를 더하거나, 빼거나, 하나의 문자를 다른 문자로 바꾸어 한 단어와 같은 구성을 갖게 되는 경우에 두 단어를 서로 비슷한 단어라고 한다. 첫째 줄에 입력으로 주어진 첫 번째 단어와 비슷한 단어가 몇 개인지 출력한다. 조건문 change : 문자가 추가됐을 때에는 ++, 문자가 감소됐을 때에는 -- changeCnt : 문자가 변경되었을 때 ++ 첫 번째 단어를 A라 칭하고 그 외의 단어들은 B라고 칭하자. A에서 문자의 개수를 check 배열에 저장하고..
문제 링크 바이러스 문제 요약 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어진다. 이어서 그 수만큼 한 줄에 한 쌍씩 네트워크 상에서 직접 연결되어 있는 컴퓨터의 번호 쌍이 주어진다. 1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다. 플로이드 와샬 알고리즘 플로이드 와샬 알고리즘을 사용하여 1번 컴퓨터에 연결되어 있는 컴퓨터의 개수를 출력하면 된다. 문제 해답 #include using namespace std; const int N_MAX = 100 + 1; bool check[N_MAX..
문제 링크 줄 세우기 문제 요약 첫째 줄에는 학생의 수가 주어지고 둘째 줄에는 줄을 선 차례대로 학생들이 뽑은 번호가 주어진다. 학생의 수가 100 이하이고, 학생들이 뽑는 번호는 0 또는 자연수이며 학생들이 뽑은 번호 사이에는 빈 칸이 하나씩 있다. 학생들이 처음에 줄을 선 순서대로 1번부터 번호를 매길 때, 첫째 줄에 학생들이 최종적으로 줄을 선 순서를 그 번호로 출력한다. 학생 번호 사이에는 한 칸의 공백을 출력한다.list 입력 값이 0이면 서 있는 자리 그대로, x면 x칸 앞에 서게 된다. list에 메소드인 insert를 활용하여 문제를 해결하였다.문제 해답 #include #include using namespace std; int main(void) { int N, x; list l; ci..
- Total
- Today
- Yesterday
- Kotlin
- 디자인 패턴
- Java
- 클린 코드
- 디자인패턴
- Effective Java
- programmers
- kotest
- Spring
- 코테
- Algorithm
- Spring Boot
- BOJ
- MSA
- 테라폼
- 백준
- C++
- kkoon9
- 알고리즘
- 클린 아키텍처
- BAEKJOON
- 이팩티브 자바
- node.js
- 이펙티브 자바
- AWS
- 프로그래머스
- 객체지향
- Olympiad
- JPA
- 정규표현식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |