[C/C++/AVX] 이동 평균 (Moving Average) 성능 비교

이동 평균(Moving Average: MA)을 계산하기 위해서는 주어진 기준점에서 정해진 MA Window 크기(개수)만큼 수를 더해서 Window 크기로 나누기를 해주면 된다. 그림 1은 MA 계산을 하기 위한 식이다. C/C++을 사용해서 특정 Array의 첫 번째 Index의 Moving Average를 구한다면 MA Window 크기(개수)만큼 숫자를 더해서 MA 값을 구한다 (편의상 나누기 연산을 수행하지 않았다). 다음 Index의 MA 값을 구할 때는 … Read more

[Algorithm] Traveling Salesman Problem 1 (Algospot – TSP1)

출처 https://algospot.com/judge/problem/read/TSP1 프로그래밍 대회에서 배우는 알고리즘 문제해결 전략 (구종만) 난이도  (하) – 중 – 상 – 최상 – 풀지 못함 문제  Input으로 최대 8개 도시간의 거리가 주어진다. Salesman이 모든 도시를 한 번씩 다 방문하는데 가장 짧은 거리를 계산하는 문제이다. 후기  문제를 읽고 Priority Queue로 문제를 풀려고 먼저 생각해보았다. 하지만, 도시의 개수가 8개 정도로 제한이 되어 … Read more

[Algorithm] 문자열 합치기 (Algospot – STRJOIN)

출처 https://algospot.com/judge/problem/read/STRJOIN 프로그래밍 대회에서 배우는 알고리즘 문제해결 전략 (구종만) 난이도 하 – (중) – 상 – 최상 – 풀지 못함 문제 100개 이하의 String의 길이가 Input으로 주어진다. 주어진 String을 모두 합치고 싶다. String을 합치기 위해서는 두 개의 String 길이 만큼 For Loop을 돌아야 한다. 예를 들어 “st”, “ri”, “ng”가 Input으로 주어지면, 먼저 “stri”를 만들기 위해 총 … Read more

[C/C++/Algorithm] Size of Data Type

2주 정도 전에 Programming 시험을 쳤다. 다행히 문제를 풀기는 했는데, Data Type들의 사이즈를 헷갈려서 printf 함수를 사용해서 가능 범위를 확인하고 문제를 풀 수 있었다. 그래서 간단하게 Data Type들의 출력 가능 범위를 짧게 정리해보았다. 위 내용은 당연히 알아야 하는 정도의 기본인지도 모르겠다 (어쩌면 기본도 없이 Programming 시험을 보러 다녔는지도 모르겠다). 출처 https://intellipaat.com/tutorial/c-tutorial/c-data-types/ https://www.tutorialspoint.com/cprogramming/c_data_types.htm

[Algorithm] Microwaving Lunch Boxes (Algospot – LUNCHBOX)

출처 https://algospot.com/judge/problem/read/LUNCHBOX 프로그래밍 대회에서 배우는 알고리즘 문제해결 전략 (구종만) 난이도 (하) – 중 – 상 – 최상 – 풀지못함 문제  N개의 도시락을 데우는 시간과 먹는 시간이 주어진다. 도시락을 데울 수 있는 전자레인지가 1개 밖에 없다고 가정을 했을 때 모든 도시락을 다 데워서 먹는데 걸리는 최소한의 시간을 찾는 문제이다. 도시락은 무조건 한 번에 다 데워야 한다는 가정이 … Read more

[Algorithm] 세븐 카드 섞기 게임 (SW Expert Academy – 4583)

출처 https://www.swexpertacademy.com 난이도 하 – 중 – (상) – 최상 – 풀지못함 문제 7장의 카드가 순서대로 나열되어 있다.  그리고 각 순서(Turn)마다 카드를 교환하는 방법을 준다. 예를 들어 이번 순서에는 2번째 카드와 3번째 카드를 교환한다. 총 교환해야 하는 횟수가 주어질 때 최종 카드 순서를 찾는 문제이다. SW Expert Academy의 경우 문제 공개를 하면 안 된다고 되어있어서 … Read more

[Algorithm] 이항계수 (Binomial Coefficient)

알고리즘 문제를 풀다 보면 기본적인 수학지식이 많이 필요하다. 그중에 이항계수가 사용되는 경우가 많은 것 같아서 정리해보았다. Factorial (!) Factorial of x. The factorial of a natural number x is the product of all positive integers less than and equal to x 특정 수를 주면 1부터 주어진 수까지 모든 수의 곱의 결과값 예: 5! = 5 * 4 * 3 … Read more

[Algorithm] 수제 버거 장인 (SW Expert Academy – 3421)

출처 https://www.swexpertacademy.com 난이도 (하) – 중 – 상 – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) 여러 개의 재료를 사용하여 햄버거를 만들려고 한다. 하지만, 같이 사용하면 안되는 재료의 종류가 주어질 때 총 만들 수 있는 햄버거의 가짓수를 계산하는 문제이다. SW Expert Academy의 경우 문제 공개를 하면 안 된다고 되어있어서 상세히 문제를 … Read more

[Algorithm] 화이트 칼라 (Algospot – WHITECOLLAR)

출처 https://algospot.com/judge/problem/read/WHITECOLLAR 난이도 하 – 중 – 상 – (최상) – 풀지 못함 문제 도둑이 특정 도시에서 출발해서 목적지 도시까지 최대한 빠른 길로 도망갈 예정이다. 도둑을 잡기 위해서 도둑이 방문할 도시를 미리 찾는 문제이다. 결과적으로 도시(Node)와 도시 간을 연결하는 길(Edge: 일방통행)이 주어졌을 때 Shortest Path를 찾는 문제이다. 후기 처음 문제를 읽고 Shortest Path를 찾는 문제로 … Read more

[Algorithm] Repeatless Numbers (Algospot – REPEATLESS)

출처 https://algospot.com/judge/problem/read/REPEATLESS 난이도  (하) – 중 – 상 – 최상 – 풀지 못함 문제 (항상 대략적인 설명만 작성합니다. 문제는 위 출처에서 확인하세요) Repeatless한 숫자들의 순서를 찾는 문제이다. 예를 들어 123은 1, 2, 3이 한 번씩만 존재하기 때문에 Repeatless 숫자이다. 반면 1233의 경우 3이 2번 나오기 때문에 Repeatless 숫자가 아니다. Input으로 100이란 숫자가 주어지면, 1부터 시작하여 … Read more