
입력 출력 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 4 이 문제는 팀원들이 각각의 회의 예정 시간이 주어지고 그에 따라 가장 많이 회의실을 배정할 수 있는 횟수를 구해내는 문제입니다. 이 문제는 그리디 알고리즘을 사용하여 풀리는 문제입니다. 그리디 알고리즘은 그때마다 최적의 선택을 하여 문제를 푸는 것을 말합니다. 물론, 그렇게 하여 최적해가 나온다는 보장은 없습니다. 따라서 이러한 알고리즘은 정말 확신이 설 때만 사용하시고 웬만하면 DP를 사용하시길 권합니다. 그렇다면, 소스코드로 봅시다. #include #include #include using namespace std; int n; vector v; int solution(){ int tmp =..

2020년 3월 10일 오늘의 토론 주제들: - 히키코모리가 탄생하는 이유는 무엇인가? - 안락사를 허용해야 하는가? - 가장 아끼는 것과 가장 갖고 싶은 것을 바꿔준다면 바꾸겠는가? - 행복은 어디에서 오는가? 히키코모리가 탄생하는 이유는 무엇인가? 성격상 내향적이거나 소심한 사람을 제외하고 나서는, 히키코모리는 심리적인 고통이 수반된다고 생각합니다. 제가 말하는 히키코모리란 성격이 내향적이지 않고, 소심하지도 않았는데 자신만의 세상에 빠져 집 안에만 있거나 사회적 활동을 하지 않는 사람을 말합니다. 이러한 심리적인 고통은 자신의 뜻과는 다르게 되는 현실이나, 혹은 극도의 스트레스 등의 이유를 꼽을 수 있을 것 같습니다. 비단 애니메이션이나 컴퓨터 게임을 좋아한다고 해서 히키코모리라 하지 않습니다. 그..

API : 이는 Application Programming Interface의 줄임말로 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다. - Web API? : 이는 웹 애플리케이션 개발에서 다른 서비스를 요청해 응답받는 API입니다. 예를 들면, API를 사용하면 블로그에 접속하지 않아도 글을 쓸 수 있고, 네이버에서 나오는 날씨 상황을 혹은 지도를 사이트에서 사용할 수 있는 것입니다. - JPA? : 이는 API의 일종으로, Java 플랫폼과 데이터베이스 관리를 표현하는 것입니다. 이를 검색해보면 데이터 관련한 강의나 자료를 찾아보실 수 있습니다. 초심자로서 어려웠던 용어들을 정리해 보았습니다. 더 많은 정보를 원하시면 위키..

Gradle : 빌드 자동화를 위한 툴(빌드 도구) - 빌드 자동화? : 프로젝트 개발 전에 로컬 개발 환경을 세팅하는 것으로, jar와 같은 라이브러리 파일을 생성하는 빌드 환경 설정을 자동으로 해주는 것을 말합니다. - 빌드 도구? : 소스 코드가 실행 가능한 애플리케이션 생성물로 자동으로 생성되도록 만드는 프로그램입니다. 즉, "소스코드 -> 컴파일 + 링킹 + 패키징 -> 실행 가능 애플리케이션"의 순서입니다. - jar 파일? : 이는 Java Archive의 줄임말로 여러 Java Class File이나 Class에서 이용하는 resource나 data를 모아 패키징 한 파일로, 실제로는 ZIP(압축파일)의 형태입니다. gradle에 대해 초심자로서 정말 간단하게 정리했습니다. 더 섬세한 정보..

입력 출력 4 5 1 1 2 1 3 1 4 2 4 3 4 1 2 4 3 1 2 3 4 5 5 3 5 4 5 2 1 2 3 4 3 1 3 1 2 5 4 3 1 4 2 5 1000 1 1000 999 1000 1000 999 1000 999 이 문제는 DFS와 BFS를 구현해 보는 문제입니다. 처음에 노드와 간선의 개수와 그에 대한 데이터들이 들어옵니다. 그래프를 구현하고 그에 따른 깊이 우선 탐색과 너비 우선 탐색을 진행하면 되는 문제입니다. 그래프의 구현을 위해서 원래는 vector 와 같은 인접 리스트를 사용했었습니다. 하지만 이번 입출력 데이터를 보시면, 노드의 번호 순서대로 접근하는 것을 볼 수 있습니다. 따라서, vector STL로 구현하려면 각각의 요소가 정렬이 필요합니다. 저는 그 과정을 배..

입력 출력 7 6 1 2 2 3 1 5 5 2 5 6 4 7 4 이 문제는 그래프를 구현하고 탐색을 진행하는 문제입니다. 이는 또한 첫 번째 노드와 연결되어 있는 연결 요소들의 개수를 세는 것과 같습니다. 그 과정은 BFS나 DFS 둘 다 가능합니다. 저는 DFS(깊이 우선 탐색)를 구현하기 위해 인접 리스트를 사용했습니다. 각각의 vector의 크기를 할당하기 위해서 resize함수를 사용했습니다. 그렇다면, 소스코드로 봅시다. #include #include using namespace std; vector adj; vector chk; int cnt = 0; void dfs(int num){ chk[num] = true; cnt++; for(int i = 0; i < adj[num].size(); ..
- Total
- Today
- Yesterday
- 용어
- 스프링 부트
- 탐욕법
- 그래프
- 브루트 포스
- 백트래킹
- N과M
- 11724번
- 1463번
- C++
- 1931번
- 정리
- 인간 관계론
- 1992번
- BFS
- 연결 요소의 개수
- 1260번
- 잃어버린 괄호
- 철학
- 동적 계획법
- 독서
- 분할 정복
- 2606번
- 1541번
- dfs
- 일지
- 토론
- 9095번
- 백준
- 1780번
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |