본문 바로가기

알고리즘/알고리즘풀면서...9

JavaScript 팁 js로 알고리즘을 풀줄이야.. 0. 풀기 전.. 1) var, let, const 간단히 var : 변수재선언가능, function scope let : 변수재선언불가능, immutable 가능 const : 변수재선언불가능, immutable 불가능 참조) https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d javascript var, let, const 차이점 javascript var, let, const 차이점. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 2) 입력 const readline = require('readline'); const rl =.. 2022. 5. 11.
JAVA 팁(2) 개발은 JAVA, 알고리즘은 C/C++을 했던 사람들을 위해.. 1. 실제 사용 예시 // 입력(한 줄 단위) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); // 공백을 포함한 입력에 활용 ex) 0 10 500 .. StringTokenizer st = new StringTokenizer(str); int n = Integer.parseInt(st.nextToken()); int m = Integer.parseInt(st.nextToken()); .. // 공백 없을 땐 그냥 for(i) int n = Integer.parseInt(str.charAt(i)); // 문.. 2022. 5. 11.
문자열 알고리즘관련 1. LCS Longest Common Subsequence : 비연속 최장 공통 문자열 Longest Common Substring : 연속 최장 공통 문자열 참고) [알고리즘] 그림으로 알아보는 LCS 알고리즘 - Longest Common Substring와 Longest Common Subsequence LCS는 주로 최장 공통 부분수열(Longest Common Subsequence)을 말합니다만, 최장 공통 문자열(Longest Common Substring)을 말하기도 합니다. velog.io 2022. 5. 8.
다시 풀어볼만한 문제 모음 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net : 단순 BFS로 풀 수도 있지만.. https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net : 여러방식 https://w.. 2021. 10. 3.
최단경로 알고리즘 정리 : 다익스트라, 벨만포드, 플로이드-와샬 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 알고리즘 다익스트라 - 음의 가중치로 인한 싸이클 발생 판별 불가능 - 현재까지 탐색된 정점 집합에서 최단 경로를 가지고 있는 탐색되지 못한 정점을 찾아 탐색한 정점 집합에 추가한다. - 그 다음, 탐색된 정점(i)들에 대해 새로 추가한 정점(j)을 거칠 때 발생하는 최단 경로를 업데이트한다. : D[i] = min(D[i], D[j] + W[j][i]) - 반복한다 - 기본문제 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정.. 2021. 8. 29.
C/C++ 팁 1. Compare함수 - priority_queue struct comp{ bool operator()(type a, type b){ return a > b; } }; priority_queue pq; pq의 비교 함수는 구조체로 구현할 수 있다. pq는 heap 형태로써 a와 b는 각각 부모 노드, 현재 노드이며 조건에 맞을 시 교환이 이루어진다.(default : max heap) (즉 예시는 현재 노드 b의 값이 부모 노드 a보다 작으면 교환이 이루어지는 형태로 min heap 구현 코드이다) - sort #include ... bool comp(type a, type b){ return a > b } ... sort(vector.begin(), vector.end(), comp); algorit.. 2020. 11. 4.
구현 팁 1. 배열에서의 시계방향, 반시계방향 bool map[SIZE]; // 원 형태의 map을 배열로 구현 int move; // 움직일 거리 int idx = 0; // map에서의 현재 위치 idx += move; if(idx >= 0) idx %= SIZE; // 시계, 반시계 방향으로 움직였을 때 else idx += SIZE; // 반시계 방향으로 움직였을 때 2. 최단경로 1) 다익스트라 : 하나의 정점에서 다른 모든 정점으로의 최단 거리 #include #include #include #include using namespace std; struct comp{ bool operator()(pair a, pair b){ return a.second > b.second; } }; int N, M, .. 2020. 10. 31.
SQL 팁 0. SQL query SELECT col FROM table WHERE condition 1. ORDER BY col1 DESC, col2 ASC, ... WHERE절 밑 2. LIMIT a, b : col [a, a+b] WHERE절 밑 3. COUNT(col) SELECT절 안에서 사용 EX) SELECT COUNT(col) EX) SELECT COUNT(*) AS NEW_NAME 4. DISTINCT(col) OR DISTINCT col SELECT절 안에서 사용 SELECT DISTINCT(col) SELECT COUNT(DISTINCT(col)) 5. GROUP BY GROUP BY col1, col2... : 그룹화하기 전, 특정 col 명시 이때 col은 기존의 col 혹은 AS로 만든 별.. 2020. 10. 22.
JAVA 팁(1) 0. 단축키 syso 입력한 후 Ctrl + Space : System.out.println(); 자동 완성 main 입력한 후 Ctrl + Space : main 문 자동 완성 try 입력한 후 Ctrl + Space : try-catch 문 자동 완성 for 입력한 후 Ctrl + Space : for 문 자동 완성 1. 입력 : 라인 단위로 읽어와서 잘라받는게 빠르다. import java.io.BufferedReader; import java.io.InputStreamReader; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); /* 한 라인이 띄어쓰기 없이 여러 개의 입력 값일 때 */ String str = b.. 2020. 10. 13.