전체 글 292

[백준 BOJ] 1476 날짜 계산

링크 https://www.acmicpc.net/problem/1476 풀이 우리가 알고 있는 연도를 y년이라고 합니다. y는 15n + E, 28m + S, 19l + M으로 나타낼 수 있습니다. (n, m, l은 0 이상의 정수) 따라서 y에서 E를 뺀 것이 15로 나누어 떨어지고, S를 뺀 것이 28로 나누어 떨어지고, M을 뺀 것이 19로 나누어 떨어질 때 y의 값이 나옵니다. 코드 //1476_날짜 계산 #include using namespace std; int e, s, m, y; int main() { scanf("%d %d %d", &e, &s, &m); while (++y) if (!((y - e) % 15 || (y - s) % 28 || (y - m) % 19)) break; pri..

PS/BOJ 2019.08.10

DFS 알고리즘, flood fill을 이용한 그림판 채우기 구현

수행평가로 만든 그림판에 채우기 기능을 구현하고 싶었습니다. 주요 소스코드는 아래와 같습니다. flood fill로 왼쪽, 오른쪽, 위쪽, 아래쪽 모두 탐색하면서 색을 칠해나갑니다. paint 함수는 이렇게 정의되어 있습니다. 평소에 그림을 그리며 색을 칠할 때, point 배열값도 변경해주면서 채우기 기능을 구현할 때 사용할 수 있었습니다. 아래는 시연 영상입니다. 감사합니다

[백준 BOJ][세그먼트 트리] 2336 굉장한 학생

2336_굉장한 학생 링크 https://www.acmicpc.net/problem/2336 풀이 시험을 3번 치룹니다. 어떤 학생보다 대단한 학생이 없어야 그 학생이 굉장한 학생입니다. 학생은 1~N 순서대로 번호가 부여되기 때문에, 첫 번째 등수를 기준으로 정렬을 합니다. 그럼 정렬을 한 상태에서 i번째 학생이 굉장하려면 1~i-1번째 학생 중에 대단한 학생을 찾으면 됩니다. 왜냐하면 i+1~N번째 학생은 이미 첫 번째 시험에서 밀렸기 때문이죠. 그럼 2번째 등수와 3번째 등수가 남았는데, 2번째 등수를 세그먼트 트리의 인덱스로 놓고 3번째 등수를 값으로 저장하게 합니다. 그 다음 1 ~ 2번째 등수 - 1에서 값의 최솟값을 뽑으면 나보다 2번째 등수가 높은 사람들 중에 3번째 등수의 최솟값이 나옵니..

PS/BOJ 2018.12.01
반응형