[ 백준 20114 ] 미아 노트 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 번진 구역을 체크하면서 문자를 찾을 수 있다면 그 문자를 출력하고 아니면 "?"를 출력한다.[코드]번진 구역을 체크하면서 문자를 찾는다.for(int i=0; i[전체 코드]#include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, H, W; string answer, tmp, arr[11]; cin>>N>>H>>W; for(int h=0; h>arr[h]; } for(int i=0; ihttps://www.acmicpc.net/problem/20114
[ 백준 9037 ] The candy war (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 홀수개를 가진 아이에게 1개씩 사탕을 준다.2. 모든 아이가 사탕을 동일하게 가질 때까지 수행한다.    2-1. 오른쪽 사람에게 사탕의 절반을 준다.    2-2. 홀수개를 가진 아이에게 1개씩 사탕을 준다.[코드]홀수개를 가진 아이에게 1개씩 사탕을 준다.for(int n=0; n오른쪽 사람에게 사탕의 절반을 준다.for(int n=0; n0; n--){ arr[n] += arr[n-1];}arr[0] += last;[전체 코드]#include #include using namespace std;bool check(int n, int arr[]){ bool flag = true; for(int i=0; i vc; cin>>T; for(int t=0; t>N..
[ 백준 10994 ] 별 찍기 - 19 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 예제를 보고 규칙 유추2. 규칙 : 별로 찍힌 정사각형이 가로 4칸 세로 4칸씩 커짐 (N = 1 -> 가로 1, 세로 1 / N = 2 -> 가로 5, 세로 5 / N = 3 -> 가로 9, 세로 9)3. N을 입력받아서 최댓값 = (N-1)*4+1을 시작으로 재귀를 통해 가로 -4칸 세로 -4칸씩 하면서 정사각형을 찍음[코드]N을 입력받아서 (N-1)*4+1을 시작으로 재귀를 통해 가로 -4칸 세로 -4칸씩 하면서 정사각형을 찍음void re(int x, int y, int cnt) { if(cnt 배열에 1인 값들은 "*"로 출력하고 0인 값은 " "으로 출력for(int i=0; i[전체 코드]#include using namespace std;int arr[1000][10..
[ 백준 2503 ] 숫자 야구 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수 생성2. 입력받은 숫자들과 생성한 세 자리 수의 스트라이크 수와 볼 수 체크3. 입력받은 숫자들과 생성한 세 자리 수의 스트라이크와 볼 수가 모두 일치한다면 가능한 답[코드]1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수 생성입력받은 숫자들과 생성한 세 자리 수의 스트라이크와 볼 수가 모두 일치하는지 체크void find(int cnt, int tmp){ if(cnt == 3){ int check = 0; for(int i=0; i스트라이크 수 체크 함수int check_strike(int a, int b){ int cnt = 0; for(int i=0; i 볼 수 체크 함..
[ 백준 1431 ] 시리얼 번호 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 각각의 조건에 맞는 조건 작성2. 조건에 맞게 정렬[코드]A와 B의 길이가 다르면, 짧은 것이 먼저 온다.bool compare(string a, string b){ int a_len = a.length(); int b_len = b.length(); if(a_len != b_len){ return a_len 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저 온다. (숫자인 것만 더한다)bool compare(string a, string b){ int a_tmp = 0; int b_tmp = 0; for(int i=0; i= 0 && a[i] - '0' = 0 && b[i] -..
[ 백준 1388 ] 바닥 장식 (JAVA)
·
Algorithm/Baekjoon
[문제 풀이]1. 체크하지 않은 나무판자를 시작으로 같은 방향이면 체크를 하고 나무판자의 숫자 +1[코드]체크하지 않은 나무판자를 선택하고 같은 방향을 체크 후 나무판자의 숫자 +1for(int n=0; n가로 방향의 나무판자를 체크하는 함수public static void row(int n, int m) { visit[n][m] = 1; if(m+1 >= M) return; if(visit[n][m+1] == 1) return; if(map[n][m+1] == '-') row(n, m+1);}세로 방향의 나무판자를 체크하는 함수public static void column(int n, int m) { visit[n][m] = 1; if(n+1 >= N) return; ..
[ 백준 12789 ] 도키도키 간식드리미 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 번호표를 queue에 입력받습니다.2. queue에서 front가 현재 들어갈 수 있는 번호표라면 간식을 받으러 보내줍니다.3. queue에서 front가 현재 들어갈 수 없다면 stack이 비어있는지 체크하고 비어있다면 stack에 push 해줍니다.4. stack이 비어있지 않다면 stack의 top을 체크하고 현재 들어갈 수 있는 번호표라면 간식을 받으러 보내줍니다.5. stack의 top이 현재 들어갈 수 없다면 stack의 top이 queue의 front보다 작은지 체크하고 작다면 "Sad"를 출력하도록 합니다.6. stack의 top이 queue의 front보다 크다면 stack에 push 해주고 1 - 6번 과정을 queue가 빌 때까지 반복합니다.7. 마지막으로 queue..
[ 백준 17266 ] 어두운 굴다리 (JAVA)
·
Algorithm/Baekjoon
[문제 풀이]1. (가로등 사이의 거리 / 2) 중에 가장 큰 값을 구하는 방식으로 문제 해결 [코드]길의 시작 ~ 처음 가로등 사이의 거리, 가로등 사이의 거리 / 2, 마지막 가로등 ~ 길의 끝 거리 중에 가장 큰 값 선택dis = 0;pre = 0;for(int m=0; m[전체 코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N, M, dis, pre, tmp, cur; static StringTokenizer st; public static void main(Stri..
[ 백준 1937 ] 욕심쟁이 판다 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 판다가 있는 좌표에서 상, 하, 좌, 우 중 이동할 수 있는 칸을 선택2. 판다가 이동할 수 있는 칸 중에서 이미 다녀온 곳이면 DFS함수를 통해 계산하지 않고 다녀오지 않은 곳이면 DFS 함수를 통해 계산3. 판다가 있는 좌표에서 상, 하, 좌, 우로 이동할 수 있는 곳 중에서 최댓값을 저장하고 반환4. 모든 좌표 중에서 최대값을 정답으로 출력[코드]판다가 있는 좌표에서 상, 하, 좌, 우 중 이동할 수 있는 칸을 선택// ni, nj 판다가 있는 좌표int nx = ni + dx[i];int ny = nj + dy[i];// 대나무 숲의 범위를 넘어가는지 체크if(nx >= N || nx = N || ny 판다가 이동할 수 있는 칸 중에서 이미 다녀온 곳이면 DFS함수를 통해 계산하..
[ 백준 5046 ] 전국 대학생 프로그래밍 대회 동아리 연합 (C++)
·
Algorithm/Baekjoon
[문제 풀이]1. 호텔에서 참가자의 수만큼 투숙할 수 있는지 체크2. 숙박비용 * 참가자의 수가 예산보다 적은지 체크3. 1, 2조건에 맞는 비용들 중 최소를 선택[코드]조건에 맞는 비용들 중 최소를 선택하는 코드for(int i=0; i>P; for(int j=0; j>a; if(a >= N && N * P N * P){ answer = N*P; } } }[전체 코드]#include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, B, H, W, P..