프로그래밍/백준(BOJ)

    [백준(BOJ) / C][Silver Ⅳ] 1158번 : 요세푸스 문제

    문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 이 문제는 원형 링크드 리스트를 사용하여 문제를 해결하였습니다. 리스트에 1,2,3,4 ... N 의 숫자를 넣은 후 K 만큼 옆으로 이동하여 그 숫자를 출력하고 리스트에서 제외한다. 이 행동을 리스트에 숫자가 다 없어질때까지 반복한다. 배열을 사용하여 해당 값을 넣은 뒤 for문으로 풀게되면 원형 링크드 리스트를 사용하는 것보다 시간이 3배 넘게 오래 걸리기때문에 효율적이지 못하다. 그러기에 큐(Queue)를 이용하거나 원형 링크드 리스트를 사용하는 것이 효율이 좋다. 소스코..

    [백준(BOJ) / C][Silver Ⅴ] 7568번 : 덩치

    문제 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 풀이 1. 데이터를 어떻게 관리해야할지. 2. 덩치들끼리 어떻게 비교를 해야할지 3. 순위를 어떻게 구별을 하고 덩치에게 순위를 넣을지 소스코드 #include // 데이터를 저장할 구조체 typedef struct struct_weight { int kg; int height; int rank; }WT; int main(void) { WT array[50]; // 덩치 데이터를..

    [백준(BOJ) / C][Bronze I] 1032번 : 명령 프롬포트

    문제 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 풀이 1. N개의 문자열들을 어떻게 관리해야할지. 2. 여러 문자열들을 비교해서 하나라도 곂친다면 해당 문자를 '?'로 어떻게 바꿔야할지 2-1. 같은 문자가 많더라도 하나라도 다르면 '?' 라는 것을 생각. 3. 컴파일 마다 문자열의 길이가 다르므로 어떻게 처리해야할지. 4. N = 1 일때 처리방법. 5. 문자열의 끝을 어떻게 확인할 것인가. 6. 문자열의 마지막은 NULL 문자이기..