목록알고리즘 (25)
안 쓰던 블로그
자주 쓰는 비트연산 정리 (feat. 펜윅트리) (1

수학 수학2에서는 수학1에서 다뤘던 내용을 기반으로 조금 더 응용하는 문제를 다뤄보겠습니다. 수학1 게시글(https://foxtrotin.tistory.com/95)을 보고 오면 도움이 되실 겁니다. 1. 나머지 연산 나머지 연산을 쓰는 유형에는 몇 가지가 있습니다. 나머지의 값이 필요할 때, 특정 수의 배수인지 판별, 짝수인지 홀수인지 판별, 몇 개의 수를 계속 돌리고 싶을 때, 너무 큰 수가 정답일 때 나머지 연산 후 정답을 출력할 때 등등.. 여기서는 몇 개의 수를 계속 돌리고 싶은 경우 어떻게 해야 하는지 알아보겠습니다. #include int main(){ int a[3] = { 1,2,3 }; for (int i = 0; i < 6; i++) { printf("%d ", a[i % 3]); ..

탐욕 알고리즘이란? 탐욕법이란 이름 그대로 ‘눈 앞에 보이는 최선’을 탐욕적으로 선택하는 것을 반복하는 알고리즘 설계 패러다임 중 하나입니다. 탐욕법을 이용한 일고리즘을 탐욕 알고리즘, 그리디 알고리즘이라고 합니다. 전체를 여러 조각으로 나눠서 각 단계마다 답의 일부를 만들어 간다는 점에서 완전 탐색과 비슷하지만, 모든 선택지를 보는 완전 탐색과 달리 탐욕 알고리즘은 지금 당장 가장 좋은 해답을 선택합니다. 탐욕 알고리즘의 대표적인 문제로는 각 물건의 무게와 가치가 주어졌을 때, 가방에 가치가 높은 물건을 최대한 많이 담는 경우를 찾는 배낭 문제(Knapsack problem)이 있습니다. 탐욕 알고리즘의 한계 탐욕 알고리즘은 매 순간 가장 좋은 선택지만 고르기 때문에 전체적으로 봤을 때 더 좋은 선택지..

알고리즘 문제풀이란? Hello World! 알고리즘 세계에 오신 것을 환영합니다. 알고리즘이란 용어는 ‘문제를 해결하기 위한 절차나 방법’을 의미하는 포괄적인 단어입니다. 소프트웨어가 어떻게 돌아가는지부터 암호, 기계학습, 심지어는 ‘계란 샌드위치를 만드는 과정’도 알고리즘이라고 할 수 있습니다. 우리 소학회에서는 그중에서 프로그래밍에서 사용하는 알고리즘(자료구조, 그래프, 문자열 등)을 문제를 풀면서 트레이닝하는 ‘문제풀이’ 부분을 다룰 것입니다. 알고리즘 문제풀이는 크게 네 가지 단계로 나누어집니다. (1)문제를 읽고 (2)입력을 받아서 (3) 계산하고 출력합니다. 이번 주에 할 내용은(1) 번과알고리즘 문제풀이의 가장 기본적인 단계, 입력과 출력입니다. 정수 입력과 출력 백준뿐만 아니라 거의 대부..