분류 전체보기 18

[백준/boj.kr] 5585번 거스름돈 (C/C++, JAVA)

거스름돈 문제 보기 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net Greedy 알고리즘 설명은 여기 를 참고하세요. 1. 문제 정의 입력으로 주어지는 X엔이 있을 때, (1000-X)엔을 500/100/50/10/5/1 엔으로 조합해 '몇 개로 잔돈을 줄 것인가'를 결정해야 합니다. 즉 최소한의 개수로 잔돈을 줄지 결정해야 하는 문제입니다. 2. 풀이 방법 탐색 '최소한'의 개수로 거스름돈을 줘야 한다면, 가장 큰 500엔부터 줘도 되는지 따져봐야 합니다. 500엔 1개로 주나, 100..

[알고리즘] 탐욕 알고리즘(Greedy Algorithm)

1. 탐욕 알고리즘(Greedy Algorithm) 이란? Greedy: (형용사) 탐욕스러운, 욕심 많은 "매 선택에서 현재 가장 최적인 답"을 선택해 전체에서 최적의 결과를 도출하는 알고리즘 기법입니다. 순간마다 선택 가능한 경우의 수 중에서, 가장 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행합니다. 최적의 경로만을 찾아 탐색하게 되므로 모든 경로를 탐색할 필요가 없습니다. 이 때문에 속도가 매우 빠른 알고리즘으로 자주 사용될 수 있습니다. 하지만, 그 결과가 최적이라는 보장은 없습니다. 아래의 예시로 설명해 드리겠습니다. 위 그래프는 A에서 출발하여 최종 목적지인 E로 가는 경로를 선택하는 예시입니다. A에서 출발하여 다음 선택 가능한 B, C, D 중에 가장 가중치가 낮은 1인 간선을 골..

[백준/boj.kr] 2748번 피보나치 수 2 (C/C++, JAVA)

https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 1. 문제 정의 피보나치 수열은 학창시절에 많이 봐왔던 일종의 '점화식'으로 정의되는 수열입니다. F(n) = F(n - 1) + F(n - 2) (단, n >= 2) 이 문제에 나와 있듯이, n=2 부터 점화식이 성립하고 n=0일 때 F(0) = 0, n = 1일 때 F(1) = 1 입니다. 2. 풀이 방법 탐색 예를 들어, n = 5라고 가정하고 점화식에 대..

[Spring] 이클립스 스프링 프로젝트 생성하기

1. 새로운 프로젝트 생성에, 'Spring Starter Project'를 클릭해 줍니다. 2. 생성할 스프링 프로젝트의 상세 설정을 진행해 줍니다. - Type: 빌드 툴 설정. 안드로이드는 'Gradle'를 많이 쓰지만 여전히 'Maven'을 많이 사용하고 있다. - Packaging: Jar는 자바 아카이브로 실행, War는 웹 아카이브라고 해서 웹에서 실제 실행시킬 수 있는 파일. 전통적으로 War를 많이 사용한다. 추가적인 스타트업 패키지 중에서 필요한 것만 선택해 설치를 진행한다. 그리고 실제 프로젝트 웹에 표출해줄 템플릿과 'Spring Web'을 선택해 주고 'Finish'를 누릅니다. 3. 설치가 완료되면 스프링 프로젝트가 생성된다. 4. 스프링 프로젝트가 완성되면, 'main' 디렉토..

Spring 2022.03.14

[Spring] 이클립스 플러그인 설치

1. 이클립스 플러그인 설치를 위해, 이클립스에서 마켓플레이스를 활용합니다. 2. 'Eclipse Enterprise Java and Web Developer Tools'를 찾아, 최신 버전으로 설치를 시작합니다. 추가적으로, 앞으로 JSON을 활용할 예정이기에 'Eclipse JSON Editor and Tools'를 체크해 줍니다. 그리고 Accept하여 설치를 마무리 합니다. 3. 다시 이클립스 마켓플레이스에서 'Spring Tools'를 검색해 설치를 진행합니다. 특별히 따로 진행할 건 없고, 쭉 진행해 준다. Accpet하여 마무리합니다. 전부 설치하고 나서, 재시작 팝업이 뜨면 재시작 해준다. 4. 이상 스프링에 사용할 이클립스 플러그인 설치 완료!

Spring 2022.03.14

[MariaDB] HeidiSQL를 사용해 MariaDB에 연결하기

HeidiSQL이란 DataBase에 접속하여 손쉽게 테이블을 관리할 수 있는 GUI 툴이다. 1. HeidiSQL을 설치합니다. (내 컴퓨터 사양에 맞는 64bit로 설치!) 2. 앞서 MariaDB 설치에 입력했던 비밀번호와 포트번호를 기입하여 연결합니다. (좌측 하단 '신규'를 눌러, 세션 이름은 임의로 기입해 줍니다. 여기서는 'localhost-MariaDB') 3. 새로운 데이터베이스를 생성해 줍니다. 4. 데이터베이스를 사용할 사용자 계정을 추가해 줍니다. (상단 메뉴 중, 사람 2명 있는 아이콘을 눌러줍니다.) 그리고 좌측 '+추가'를 눌러 새로운 사용자를 추가해주고 사용자 이름, 접속가능한 경로, 암호(여기선 a1234)를 입력해 줍니다. 그리고 바로 밑 '+객체추가'를 눌러 권한을 가질..

DataBase 2022.03.14

[MariaDB] 설치하기

1. MariaDB 설치를 위해 다운로드 사이트에 접속해 줍니다. https://mariadb.org/download Download MariaDB Server - MariaDB.org REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server" mariadb.org 2. 안정적인 최신 버전으로 다운로드 해줍니다. (자동으로 설치해주는 MSI Package가 아닌, ZIP파일로 다운받아 직접 설치를 진행해 보기 위해, ZIP버전으로 다운로드하여 압축 해제를 진행합니다.) 3. 압축 해제한 디렉토리 내에 bin 폴더로 들어가보면, maraidb 뿐만 아니라 mysql 설치 파일도 포함되어 있습니다. 이제 명령 프롬..

DataBase 2022.03.14

[백준 6603]로또

출처 : https://www.acmicpc.net/problem/6603 1. DFS(재귀함수)를 이용한다. 2. input배열과 뽑은 숫자를 임시로 저장할 temp배열이 필요하다. 3. idx_1 : input배열의 인덱스 / idx_2 : temp배열의 인덱스 4. 로또의 문제 특성상 K개중 6개만 뽑으면 된다. 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 #include using namespace std; int input[13]; int temp[13]; int K; void dfs(int idx_1, int idx_2) { if (idx_2== 6) { for (int i = 0; i