[Algorithm] 사막에서 만난 지니 (SW Expert Academy – 4747)

출처 https://www.swexpertacademy.com 난이도 하 – 중 – (상) – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 물건의 종류를 주고 각 물건의 값어치를 Input으로 준다. 주어진 물건을 3개의 그룹으로 나누어서, 모든 그룹에 속한 물건 값어치 합이 똑같아지는 답을 찾는 문제이다. SW Expert Academy의 경우 문제 공개를 하면 안 된다고 되어있어서 … Read more

[Algorithm] 특이한 자석 (SW Expert Academy – 4013)

출처 https://www.swexpertacademy.com 난이도 하 – (중) – 상 – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 톱니바퀴 모양의 자석이 4개 연결되어 있다. 특정 위치의 자석을 움직이면 앞에 위치하는 자석 또는 뒤에 위치하는 자석의 위치가 변경될 수도 있고, 전혀 움직이지 않을 수도 있다. 자석들을 몇 번씩 움직였을 때 최종 자석들의 위치를 계산하는 … Read more

[Algorithm] 차량 정비소 (SW Expert Academy – 2477)

문제 출처 https://www.swexpertacademy.com 난이도  하 – 중 – (상) – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 정비소에서 차량을 고치기 위해서는 접수 후 정비가 가능하다. 접수와 정비 창구가 여러 개씩 주어지고, 각 창구의 접수 시간 및 정비 시간이 다를 때, 특정 창구를 이용한 사람을 찾는 문제이다. SW Expert Academy의 … Read more

[Algorithm] 요리사 (SW Expert Academy – 4102)

문제 출처 https://www.swexpertacademy.com 난이도 (하) – 중 – 상 – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 여러 개의 음료 재료가 Input으로 주어진다. 여러 가지 재료를 딱 반으로 나누어 음식을 만들었을 때 음식의 맛이 차이를 최소화하는 방법을 계산하는 문제이다. SW Expert Academy의 경우 문제 공개를 하면 안 된다고 되어있어서 … Read more

[Algorithm] 미생물 격리 (SW Expert Academy – 2382)

문제 출처 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl 난이도 하 – (중) – 상 – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) N x N Matrix에 미생물 집단이 있다. 각 미생물 집단은 상, 하, 좌, 우로만 움직일 수 있고, Matrix 끝에 도달하게 되면 절반의 미생물이 죽고 이동 방향을 반대로 바꾸게 된다. 그리고 여러 집단의 … Read more

[Algorithm] 홈 방범 서비스 (SW Expert Academy – 2217)

문제 출처 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu 난이도 하 – 중 – (상) – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) N x N Matrix 크기로 생긴 도시에 집들이 있다. 주어진 도시 정보에서 집을 최대한 많이 커버하는 마름모 크기를 찾는 게 문제이다. 마름모 크기가 커질수록 지출이 커지고, 마름모 안에 집이 들어가면 수입이 생겨서 … Read more

[Algorithm] pDNA (Algospot – PDNA)

문제 출처 https://algospot.com/judge/problem/read/PDNA 문제 난이도 (하) – 중 – 상 – 최상 – 풀지 못함 문제 설명 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 입력으로 최대 10개의 단어를 주면, 단어들을 조합하여 하나의 단어를 만들어야 한다. 만들어진 단어가 어느 방향에서 읽어도 같으면 pDNA라고 한다. 예를 들어 ABCD는 pDNA가 아니지만, ABBA는 pDNA이다. 만약 여러 개의 pDNA가 … Read more

[Algorithm] Brute-Force Attack (Algospot – BRUTEFORCE)

문제 출처 https://algospot.com/judge/problem/read/BRUTEFORCE 문제 난이도  하 – (중) – 상 – 최상 – 풀지 못함 문제 설명 (항상 대략적인 설명만 작성합니다.  문제는 위 출처에서 확인하세요) 총 암호 조합의 수를 계산하는 문제이다. Input으로 최소 암호 자릿수, 최대 암호 자릿수가 주어진다. 이와 더불어 각 암호 자리당 들어갈 수 있는 input (Char)의 개수가 주어진다. 예를 들어 최소/최대 4자리 암호 … Read more

[Algorithm] 재귀 함수 (Recursive Function)

개인적으로 Recursive 함수를 많이 사용하는 편이라고 생각했다. 하지만, 항상 사용만 했지 한 번도 제대로 이해해 보려고 했던 적은 없는 것 같다. “프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략” 책을 읽으면서 for Loop과 Recursive 함수를 같이 사용하여 가능한 모든 조합의 수를 찾는 방법을 아주 쉽게 구현할 수 있어서 짧게 정리해보았다. 아래 코드는 책에서 작성된 Pseudocode 코드를 … Read more

[Algorithm] 퀵 정렬 알고리즘 (Quick Sort Algorithm)

프로그래밍 문제를 풀면서 리스트 정렬을 해야 하는 경우가 많아서 쉬운 알고리즘 부터 공부를 하기 시작했다. Quick Sort가 이해하기 쉬운 알고리즘 중 하나 인듯하여서 SW Expert Academy에서 제공하는 코드를 보면서 공부를 해보았다 (출처 1). 아래 코드는 SW Expert Academy에서 제공하는 코드를 가져와 정말 살짝 변경하였다. void quickSort(int list[], int begin, int back) { if (begin < … Read more