분류 전체보기

    [백준(BOJ) / C++][Silver Ⅰ] 11660번 : 구간 합 구하기 5

    문제https://www.acmicpc.net/problem/11660풀이해당 문제는 구간 합 알고리즘을 사용하여 해결하였습니다. 먼저, 질의의 개수가 100,000개 이므로 이 문제는 질의마다 합의 값을 구하면 안된다. 그렇게 되면 무조건 시간초과가 나오기 때문에 다른 방법을 찾아봐야 하는데, 그것이 바로 '구간 합 배열' 이다. 이 문제는 2차원 구간 합 배열을 사용해야하는데, 해당 배열은 다음과 같이 정의할 수 있다. D[X][Y] = 원본 배열의 (0, 0) 부터 (X, Y) 까지의 사각형 영역 안에 있는 수의 합. 일단, 합 배열을 만들어야 하는데,  2차원 구간 합 배열의 1행, 1열부터 구합니다.구간 합 배열 1행, 1열은 다음과 같이 구합니다. 1행 : D[1][j] = D[1][j-1] ..

    [백준(BOJ) / C][Bronze Ⅱ] 10811번 : 바구니 뒤집기

    문제 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 풀이 간단한 배열 Swap 문제 소스코드 #include #include void Swap(int* _arr, int _left, int _right); int main(void) { int N, M; int left, right; int* arr; scanf("%d %d", &N, &M); arr = (int*)malloc(sizeof(int) * N); for(int i = 0; ..

    [C++]람다 표현식(Lambda Expression) 정리

    람다 표현식 (Lambda Expression) 람다 표현식(Lambda Expression)이란 C++11부터 도입된 기능입니다. 함수형 프로그래밍을 구성하기 위한 함수식이며, 간단하게 익명 함수(anonymous function)를 생성할 수 있도록 하는 문법입니다. 객체를 만들 때 필요한 지점에서 메서드 타입, 메서드 이름, 매개변수 타입 등을 쓰지 않고, 생략해서 객체를 만들 수 있게 해 줍니다. [capture](parameter_list) -> return_type { // 함수 본문 } 람다식을 처음 봤을 때는 지금까지 사용하였던 함수와는 달라 헷갈릴 수도 있습니다. 하지만 함수 객체나 함수 포인터를 대신하여 코드를 간결하게 작성을 하게 해주는 문법이기에 알아둔다면 도움이 될 것입니다. 화살..

    [백준(BOJ) / C][Bronze Ⅰ] 10798번 : 세로읽기

    문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 풀이 2차원 배열을 활용하여 풀었습니다. 5번 입력을 받는것은 고정이며, 문자열의 길이는 최대 15이지만 더 줄어들수있습니다. 그러므로 최대 문자열의 길이만큼 문자열을 확인할수있게 하였습니다. 또한, 만약 모든 문자열의 길이가 다르다면 공백인 곳에 접근할수 있으므로 공백일경우는 continue를 하여 해당 배열을 넘어갔습니다. 간단한 2차원 배열 + 문자열 문제입니다. 소스코드 #in..