티스토리

Hicecream
검색하기

블로그 홈

Hicecream

hungrypig00.tistory.com/m

Hicecream 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [Java]백준_23881 : 알고리즘 수업 - 선택 정렬 1 https://www.acmicpc.net/problem/23881 문제 분석선택 정렬을 직접 구현하는 문제이다. 선택 정렬의 가장 기본적인 원리는 가장 작은 데이터를 선택해서 앞으로 보내는 알고리즘이다.한 바퀴 돌면서 가장 작은 데이터를 찾아서 맨 앞 데이터와 교환하고, 그 다음 작은 데이터를 찾아서 그 다음 위치와 교환하는 식으로 동작한다.배열 [5, 3, 8, 4, 2]로 동작 원리를 살펴보겠다. 전체 [5, 3, 8, 4, 2] 중 가장 작은 값: 2 -> 첫 번째 값 5와 교환=> 결과 : [2, 3, 8, 4, 5] 남은 부분 [3, 8, 4, 5]에서 가장 작은 값: 3 -> 그대로 유지=> 결과 : [2, 3, 8, 4, 5] 남은 부분 [8, 4, 5]에서 가장 작은 값: 4 ->.. 공감수 1 댓글수 1 2025. 4. 15.
  • [Java]백준_23968 : 알고리즘 수업 - 버블 정렬 1 https://www.acmicpc.net/problem/23968    문제 분석버블 정렬로 k번째 교환되는 두 수를 구하는 문제이다.먼저, 버블 정렬의 개념을 알아야 한다. 버블 정렬의 가장 기본적인 원리는 인접한 두 개의 수를 비교하여 큰 수를 오른쪽으로 밀어내며 정렬하는 알고리즘이다. 두 개의 수를 비교하여 만약 앞에 있는 숫자가 더 크다면, 서로 교환을 시키고 이후 다시 옆칸과 비교하는 방법을 반복한다.배열 [5, 3, 8, 4, 2]로 동작 원리를 살펴보겠다. 5와 3 비교 -> 교환 -> [3, 5, 8, 4, 2]5와 8 비교 -> 그대로 -> [3, 5, 8, 4, 2]8과 4 비교 -> 교환 -> [3, 5, 4, 8, 2]8과 2 비교 -> 교환 -> [3, 5, 4, 2, 8]=> .. 공감수 1 댓글수 1 2025. 4. 14.
  • [Java]백준_18110 : solved.ac https://www.acmicpc.net/problem/18110    문제 분석배열에 입력 받은 값을 넣고, 정렬배열 길이의 15% 만큼의 값을 앞뒤로 제외나머지 중간 값들의 평균 구하기  소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 공감수 1 댓글수 1 2025. 4. 11.
  • [Java]백준_5576 : 콘테스트 https://www.acmicpc.net/problem/5576    문제 분석w대학과 k대학의 점수를 담을 배열 2개를 만들고, 정렬하여 각 배열의 마지막 3개의 값의 합을 구하면 된다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 공감수 0 댓글수 0 2025. 4. 11.
  • [Java]프로그래머스_Lv0 : 피자 나눠 먹기 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120814 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr    문제 분석피자 한 판은 무조건 7조각이다.사람의 수 n이 주어졌을 때, 모든 사람이 피자를 먹을 수 있는 피자의 수를 구하는 문제이다.몫과 나머지를 이용하면 될 것 같다.  소스 코드 (⭕)class Solution { public int solution(int n) { int answer = n / 7; if(n % 7 != 0){ answer++; } .. 공감수 0 댓글수 0 2025. 4. 7.
  • [Java]백준_2563 : 색종이 https://www.acmicpc.net/problem/2563     문제 분석여러 x좌표와 y좌표로 겹치는 부분 제외 넓이 계산 -> 2차원 배열로 풀어보기도화지의 넓이는 100x100 이고, 색종이의 넓이는 10x10이고, 색종이의 수는 100 이하로 정해져 있다.도화지 상의 좌표를 그대로 인덱스로 활용하기 위해 101 크기의 2차원 배열로 지정해놓고, 색종이를 붙일 때마다 해당 영역(10x10)을 순회하면서 새로 덮는 지점만 카운트해주면 된다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public c.. 공감수 0 댓글수 0 2025. 4. 6.
  • [Java]백준_1919 : 애너그램 만들기 https://www.acmicpc.net/problem/1919     문제 분석입력받는 문자열을 각각 s1과 s2라고 하자.s1과 s2의 겹치는 문자가 있다면, 그것들을 제외한 나머지 문자의 갯수만 세어주면 된다.    소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); cha.. 공감수 0 댓글수 0 2025. 4. 5.
  • [Java]백준_10953 : A+B - 6 https://www.acmicpc.net/problem/10953    문제 분석a와 b의 범위를 보면, 한 자릿수로 고정되어 있다.O,O 형태로 고정된 것.따라서 첫 번째 자릿수와 세 번째 자릿수를 추출해주면 된다.  소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int .. 공감수 0 댓글수 0 2025. 4. 2.
  • [Java]백준_10824 : 네 수 https://www.acmicpc.net/problem/10824    문제 분석입력 받은 수를 문자열처럼 붙여야 하니까 String 형태로 입력받아준다.문자열을 붙인 다음, 주의할 점은 a,b,c,d의 크기를 봐야 한다.1 ≤ A, B, C, D ≤ 1,000,000 만약, a와 b가 1,000,000이라면, 두 수를 붙였을 때10,000,001,000,000이 되므로 int의 범위를 넘어서게 된다. 따라서 Long으로 형 변환을 해야 한다.  소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class .. 공감수 0 댓글수 0 2025. 4. 1.
  • [Java]백준_2720 : 세탁소 사장 동혁 https://www.acmicpc.net/problem/2720    문제 분석1달러 = 100센트니까 센트 단위로 전부 바꿔서 계산하면 편하다.쿼터 - 25센트, 다임 - 10센트, 니켈 - 5센트, 페니 - 1센트가 된다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); .. 공감수 0 댓글수 0 2025. 3. 31.
  • [Java]백준_15439 : 베라의 패션 https://www.acmicpc.net/problem/15439    문제 분석상의 : 빨 주 노 초 파 ...하의 : 빨 주 노 초 파 ... 위와 같은 형태로 되어 있는데, 여기서 상의와 하의가 서로 다른 색상 조합이 몇 가지나 되는지 구하는 문제이다. 상의가 빨강일때를 기준으로 잡으면, 빨강 하의 제외한 빨-주 / 빨-노 / 빨-초 / 빨-파상의가 주활일때를 기준으로 잡으면, 주황 하의 제외한 주-빨 / 주-노 / 주-초 / 주-파...결국 n벌이 있을 때 n*(n-1)의 경우의 수가 된다.  소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Ma.. 공감수 0 댓글수 0 2025. 3. 31.
  • [Java]백준_10798 : 세로읽기 https://www.acmicpc.net/problem/10798   문제 분석2차원 배열에 입력 받은 값을 넣어놓고 [0~4][0], [0~4][1] ...을 반복해서 출력하면 세로로 읽을 수 있다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilde.. 공감수 1 댓글수 1 2025. 3. 26.
  • [Java]백준_14215 : 세 막대 https://www.acmicpc.net/problem/14215    문제 분석삼각형의 성립 조건식을 알아야 풀 수 있는 문제이다.삼각형 성립 조건 : 가장 긴 변의 길이가 나머지 두 변의 합보다 작아야 한다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffer.. 공감수 1 댓글수 1 2025. 3. 25.
  • [C]백준_5622 : 다이얼 2023년 3월 7일에 작성됨 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 분석 각 알파벳 단어마다 걸리는 시간을 구하고, 입력받은 단어를 분석하여 총 걸리는 시간을 구해본다. 소스 코드 (⭕) #include #include // strlen 함수 사용하기 위한 헤더파일 int NUM(int n);// 사용자 정의 함수 NUM 선언 int main() { char munja[16]; int i, sum = 0; scanf("%s", munja, sizeof(munja)); for (i = 0; i < strlen(mu.. 공감수 0 댓글수 0 2024. 4. 8.
  • [C]백준_8979 : 올림픽 2023년 3월 6일에 작성됨 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 문제 분석 각 국가마다 번호, 금, 은, 동 메달의 변수는 고정이므로 구조체를 이용하여 접근해본다. 소스 코드 (⭕) #include #include struct Medal// 각 국가의 번호와 메달 수를 담을 Medal 구조체 생성 { int country; int gold; int silver; int bronze; }; int main() .. 공감수 0 댓글수 0 2024. 4. 7.
  • [C]백준_24389 : 2의 보수 2023년 3월 5일에 작성됨 https://www.acmicpc.net/problem/24389 24389번: 2의 보수 컴퓨터는 뺄셈을 처리할 때 내부적으로 2의 보수를 사용한다. 어떤 수의 2의 보수는 해당하는 숫자의 모든 비트를 반전시킨 뒤, 1을 더해 만들 수 있다. 이때, 32비트 기준으로 처음 표현했던 수와 www.acmicpc.net 문제 분석 n을 입력받고, n과 n의 2의 보수의 이진수를 배열에 넣고 이를 바교하여 서로 다른 비트 수를 구해본다. 소스 코드 (⭕) #include int main() { int n, cnt = 0, diff_bit = 0; int binary[33] = { 0 };// 정수 n의 2진수 담을 배열 int result[33] = { 0 };// n의 보수 .. 공감수 0 댓글수 0 2024. 4. 7.
  • [C]백준_3447 : 버그왕 2023년 3월 4일에 작성됨 https://www.acmicpc.net/problem/3447 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 문제 분석 예제 입력에서 "BUG"라는 글자를 찾아서 완전히 없앤 결과를 출력해준다. 소스 코드 (⭕) #include #include int main() { char str[101]; char bug[] = "BUG"; // 입력받을 문자열이 없을 때까지 반복 while (fgets(str, 101, stdin) != NULL) { // BUG 문자열이 없을 때까지 반.. 공감수 0 댓글수 0 2024. 2. 3.
  • [C]백준_5597 : 과제 안 내신 분..? 2023년 3월 3일에 작성됨 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 문제 분석 배열을 이용하여 입력을 받고 문제를 해결한다. 소스 코드 (⭕) #include int main() { int arr[31] = { 0 }; int i, num; for (i = 1; i 공감수 0 댓글수 2 2024. 2. 2.
  • [Python]백준_5086 : 배수와 약수 2023년 3월 2일에 작성됨 https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 문제 분석 배수인지, 약수인지, 둘 다 아닌지 if문으로 경우를 나눠서 문제를 해결한다. 소스 코드 (⭕) while (1): a, b = map(int, input().split()) if a == 0 & b == 0: break elif b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither") 코드 분석 1. .. 공감수 0 댓글수 2 2024. 2. 2.
  • [C]백준 4153 : 직각삼각형 2023년 2월 26일에 작성됨 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 분석 직각삼각형이 되는 공식인 피타고라스의 정리를 이용한다. 직각삼각형에서 빗변 길이의 제곱은 다른 두 변의 길이의 제곱의 합과 같다. 소스 코드 (⭕) #include int main() { int a, b, c, max; while (1) { scanf("%d %d %d", &a, &b, &c); if (a == 0 && b == 0 && c == 0) break; if (.. 공감수 0 댓글수 0 2024. 1. 15.
  • [C]백준_2446 : 별 찍기 - 9 2023년 2월 25일에 작성됨 https://www.acmicpc.net/problem/2446 2446번: 별 찍기 - 9첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.www.acmicpc.net  문제 분석역삼각형과 삼각형 모양을 for문을 활용하여 출력해준다.   소스 코드 (⭕)#include int main(void){ int n, cnt; scanf("%d", &n); cnt = n; for (int i = 0; i  코드 분석1. n을 입력받고, 역삼각형을 먼저 출력하기 위해 n번 반복하는 반복문을 세워준다.     1-1. 0번부터 n-1번까지 1씩 증가하도록 반복하여 공백을 출력해준다.     1-2. 2*cnt-1개부터 2개씩 줄어들도록 반복마다 cnt.. 공감수 0 댓글수 0 2023. 12. 23.
  • [C]백준_2445 : 별 찍기 - 8 2023년 2월 24일에 작성됨 https://www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 분석 별, 공백, 별 순으로 해서 for문을 이용하여 출력한다. 예제 출력을 대칭이 되도록 가로로 잘랐을 때 윗 부분 - 별 개수 +1씩, 공백 -1씩 아랫 부분 - 별 개수 -1씩, 공백 +1씩 되는 규칙이 있다. 소스 코드 (⭕) #include int main() { int n, cnt1, cnt2; scanf("%d", &n); cnt1 = n; for (int i = 0; i < n; i++) { for (int j = 0; j 0; k--) { printf(" "); } cnt.. 공감수 0 댓글수 0 2023. 12. 22.
  • [C]백준_1789 : 수들의 합 2023년 2월 21일에 작성됨 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 분석 N개의 자연수 합이 최댓값이 되려면 1부터 2, 3, 4...까지 차례대로 더해준다. 1부터 n까지 더한 누적합이 s보다 커지게 되면, 커지기 직전의 가장 마지막에 더해준 자연수가 최댓값이 된다. 예를 들어 s=20이면, 1+2+3+4+5+6=21>20(커짐), 1+2+3+4+5=15 최댓값은 5가 된다. 소스 코드 (⭕) #include int main() { long long int S; long long int i = 1, sum = 0; scanf("%d", &S).. 공감수 0 댓글수 2 2023. 12. 21.
  • [C]백준_2444 : 별 찍기 - 7 2023년 2월 20일에 작성됨 https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 분석 for문을 이용하여 예제 출력처럼 별을 출력한다. 소스 코드 (⭕) #include int main() { int n, cnt = 1; scanf("%d", &n); for (int i = 0; i 0; j--) { printf(" "); } for (int k = 0; k < 2 * cnt - 1; k++) { printf("*"); } cnt++; printf("\n"); } cnt = n; for (int .. 공감수 0 댓글수 0 2023. 12. 20.
  • [C]백준_1264 : 모음의 개수 2023년 2월 18일에 작성됨 https://www.acmicpc.net/problem/1264 1264번: 모음의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄 www.acmicpc.net 문제 분석 한 줄씩 문장을 입력받고 모음이 있는 경우에 그 개수를 세어주는 식으로 풀어준다. 소스 코드 (⭕) #include int main() { char stc[256] = {0}; int su = 0; while (1) { // scanf()는 공백을 읽을 수가 없다 // gets()는 줄 바꿈을 입력할 때까지 한 줄을 그대로 읽어들인다.. 공감수 0 댓글수 2 2023. 12. 20.
  • [C]백준_2798 : 블랙잭 2023년 2월 17일에 작성됨 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 문제 분석 카드 3장의 합이 m을 넘지 않으면서 제일 큰 수를 구하면 된다. 브루트포스 알고리즘 방법으로 모든 경우의 수를 탐색해본다. 소스 코드 (⭕) #include int main() { int n, m; int num[101] = { 0 }; int sum, max = 0; scanf("%d %d", &n, &m); for (.. 공감수 0 댓글수 0 2023. 12. 19.
  • [C]백준_2443 : 별 찍기 - 6 2023년 2월 13일에 작성됨 https://www.acmicpc.net/problem/2443 2443번: 별 찍기 - 6 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 분석 for 반복문을 활용하여 별을 출력한다. 소스 코드 (⭕) #include int main() { int n, cnt = 0; scanf("%d", &n); cnt = n; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { printf(" "); } for (int k = 0; k < 2 * cnt - 1; k++) { printf("*").. 공감수 0 댓글수 0 2023. 12. 19.
  • [C]백준_2442 : 별 찍기 - 5 2023년 2월 12일에 작성됨 https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 분석 for 반복문을 적절히 활용하여 별을 출력한다. 소스 코드 (⭕) #include int main() { int n, cnt = 0; scanf("%d", &n); for (int i = 0; i i; j--) { printf(" "); } cnt += 1; for (int k = 1; k i까지 범위로 설정해준다. i는 전체 반복마다 1씩.. 공감수 0 댓글수 1 2023. 12. 18.
  • [C]백준 9656 : 돌 게임 2 2023년 2월 12일에 작성됨 https://www.acmicpc.net/problem/9656 9656번: 돌 게임 2 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 문제 분석 n이 1이면, CY 2이면, SK 3이면, CY 4이면, SK 5이면, CY 6이면, SK ... 따라서 n이 2의 배수일 때, 상근이가 게임을 이긴다는 규칙이 있다. 소스 코드 (⭕) #include int main() { int N; scanf("%d", &N); if (N % 2 == 0) { printf("SK\n"); } else { printf("CY\n"); } return 0; } 코드 분석 1. n을 입력받는다. 2. if문으로 n을 2로 나눈 나머지가 0.. 공감수 0 댓글수 1 2023. 12. 18.
  • [C]백준_2752 : 세수정렬 2023년 2월 11일에 작성됨 https://www.acmicpc.net/problem/2752 2752번: 세수정렬 정수 세 개가 주어진다. 이 수는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 수는 모두 다르다. www.acmicpc.net 문제 분석 숫자 3개를 입력했을 때, 오름차순으로 정렬하여 출력하는 문제이다. 소스 코드 -1 (⭕) #include int main(void) { int a, b, c; scanf("%d %d %d", &a, &b, &c); if (a < b && b < c) { printf("%d %d %d", a, b, c); } else if (a < c && c < b) { printf("%d %d %d", a, c, b); } else if (b < .. 공감수 0 댓글수 2 2023. 12. 18.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.