| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 1차면접
- MySQL
- 리액트
- URL입력
- 백준알고리즘
- 프로젝트 후기
- 오라클
- 뷰
- 알고리즘
- 대문자
- 간단 프로젝트
- 첫 리액트
- 뷰 리액트 비교
- 면접
- 자바
- e-HR
- react
- CompositionAPI
- SBS 본사
- 경력직
- 쟈스
- 뷰 리액트
- SBS 개발
- 백준
- IT시스템개발
- 첫 React
- 웹 개발 면접 질문
- 사내시스템
- Vue.js
- 트리
- Today
- Total
목록분류 전체보기 (88)
리주의 프로그래밍 공부
Arrays.sort는 최악의 경우, 시간 복잡도가 O(n^2)이라 사용하지 않았는데, 다른 사람들의 풀이를 보니, 이 문제에서는 사용해도 됐던 것 같다. (Collections.sort는 Timsort를 사용하여 최악의 경우에도 O(n logn)을 보장한다. insert sort와 merge sort를 섞어쓴다고 한다.) + (Arrays.sort는 형에 따라 쓰는 알고리즘이 달라서 시간복잡도가 다르다고 한다. int형으로 쓴다면, 자바는 Quicksort를 사용해서 최악의 경우 O(n^2)을 가지고, Integer형으로 쓴다면, Mergesort로 O(n logn)을 가진다고 한다. 그렇다면 이 문제에서도 Integer로 쓴다면 걱정없이 Arrays.sort를 쓸 수 있을듯 하다.) 간단한 문제였음에..
방금 전에 올린 N과 M(2) 문제에서 하나만 수정하면 바로 맞추는 문제였다. (혹시나 15650 N과 M(2)를 풀지 않았다면 그거먼저 풀고오면 도움이 될듯하다.) [15650] N과 M (2) 다시 풀어보는 백트래킹 문제. 아직까지도 완벽히 숙지하지 못한 것 같다. (바로 N과 M 다른문제 풀러가야지) 우선 이 문제는 visited 배열이 필요가 없다. 왜냐하면 재귀적으로 호출할 때, +1을 해 leezu-prog.tistory.com dfs를 호출할 때, i+1에서 i로만 바꿔주면 된다. 이유는 중복가능하기 때문이다. 비내림차순은 dfs를 아래서부터 시작하면 자연스레 따라온다. import java.io.BufferedWriter; import java.io.IOException; import ja..
다시 풀어보는 백트래킹 문제. 아직까지도 완벽히 숙지하지 못한 것 같다. (바로 N과 M 다른문제 풀러가야지) 우선 이 문제는 visited 배열이 필요가 없다. 왜냐하면 재귀적으로 호출할 때, +1을 해주면 앞에 적힌 수보다 자연스레 커지기 때문이다. 그래서 방문 확인용 배열이 필요가 없다! 중복 체크할 이유가 사라지기 때문이다. 나는 이거를 다른사람이 설명해줄 때에도 이해하는데 꽤나 어려움을 겪었다ㅠㅠ.. (그래도 확실히 해놔야 다른 백트래킹 문제를 풀어볼 수 있으리라 생각했기 때문이다.) import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Scanner;..
백트래킹 문제 dfs를 어느정도 이해했다고 생각했지만, 백트래킹 문제를 풀다가... 많은 사람들의 코드를 참고했다. 참고하고 혼자서 또 구현해보려다 실패하기를 반복하다, 억지로 맞췄다.. import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Scanner; public class Main { static int n,m; static int[] arr; static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] arg..
얼핏 보면 2차원배열로 퀸을 놓으면 안되는 자리만 체크해주면 쉽게 풀릴듯하다. 그렇게 보고 푸는 아이디어만 생각하고 검색을 해봤다. 그런데... 다들 1차원 배열로 풀었다. 2차원으로 풀면 시간초과가 난다고... 그래서 다른 사람들의 풀이를 참고하였다. import java.io.IOException; import java.util.Scanner; public class Main { static int n; static int result = 0; static int[] map; public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); n = sc.nextInt(); map = new in..
큰 틀을 구상하다가, 검색 기능과 글 목록 출력에 대해 테스트해보기로 했다. 여러 테이블이 결합된 탓에, 출력을 하려면 join을 써야했다. 그런데, 막상 join을 써서 어찌저찌 원하는 column만 뽑아냈는데.. 그 쿼리에 검색을 추가할 엄두가 안나는 것이다. 그렇게 고민하던 중, view를 사용해보라는걸 듣고 오른쪽에 보이는 5개의 테이블을 필요한 column만 모아서 view를 만들었다. group_concat도 사용해서 새로운 tag column에 태그들을 넣었다. 모든게 순조롭게 진행되는줄 알았으나... 또 검색을 생각해보니, 이대로는 tag에서 검색하기가 쉽지않았다. 그래서 최종적으로 결정한 방법은.. join으로 view를 만들되, group_concat을 view 만들 때 사용하는게 아니..
Group_concat 한 column에 여러 값을 붙여 저장할 때 사용 아래 사이트에 들어가면 구분자(기본값 : 쉼표)를 바꾸는 방법도 나와있다. 참고 사이트 www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php
JOIN (INNER JOIN) >> select * from A join B on A.name = B.name; A의 name(column)과 B의 name(column)이 서로 같은 값들을 가진 레코드 출력 LEFT JOIN >> select * from A left join B on A.name = B.name; 기본적으로 A 테이블을 출력하고 A의 name과 B의 name이 같은 B의 column 값들을 레코드에 추가 출력 만약 A 테이블의 한 개의 레코드에 일치하는 B의 레코드가 여러개라면, A 테이블의 레코드를 여러번 출력 RIGHT JOIN >> select * from A right join B on A.name = B.name; 기본적으로 B 테이블을 출력하고 A의 name과 B의 nam..