| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- SQLP
- 알고리즘
- 탐욕알고리즘
- 정렬알고리즘
- 개발자
- HTTP상태
- 챗지피티
- 백준
- ChatGPT
- 파이썬
- HTTP
- 하루코딩
- 프로그래머스
- SQLD
- Python
- javascript
- Spring
- codingtest
- 개발
- 서버
- 자바
- 알고리즘코딩테스트
- 그리디알고리즘
- JQuery
- 코딩테스트
- jsp
- SQL
- 네트워크
- API
- java
- Today
- Total
목록java (38)
개발자's Life
삽입정렬 시간복잡도는 n제곱으로 느린 편이지만 구현하기 쉽다. 코테에서 굳이 많이 사용하진 않지만 코딩인터뷰 관련하여 정렬에 대해 질문 대비하여 알아놓으면 좋다. 예시 설명 ) 5개의 배열이 있고 오름차순으로 정렬을 할려고 한다. 정렬된 데이터 범위 내에서 적절한 위치에 삽입하는 것이 삽입정렬의 핵심이다. 1. 우선 1 인덱스의 값 52의 이전 인덱스 범위를 바라본다 23 52 32 12 45 52 와 23 을 비교할때 52가 크기 때문에 변함이 없고 다음으로 넘어간다. 2. 2 인덱스인 32 가 기준이 되고 그 이전 범위 포함하여 0 - 2 인덱스를 비교한다. 23 52 32 12 45 32는 52보다 작기 때문에 52를 2 인덱스로 옮겨가고 32가 1 인덱스 자리로 넘어가게 된다. (23은 32보다 ..
코딩테스트에서도 자주 사용하는 배열과 리스트! 두 자료구조를 정확히 이해하고 문제의 요구사항에 맞게 잘 사용해야 한다. 배열은 연속 공간에 값이 채워지는 형태의 자료구조이고 인덱스를 통해 참조할 수 있다. 배열은 삽입, 삭제 할려면 인덱스의 값을 옮기고 삽입/삭제를 해야해 까다로운 작업이다.. 배열 길이는 초기화할때 꼭 선언이 되어야 한다. 리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조이다. 인덱스가 없어서 Head 포인터부터 순서대로 접근해야 한다. 이로 인해 접근 속도가 느리다. 삽입/삭제 연산속도가 빠르고 선언할 때 길이를 별도로 지정하지 않아도 된다. 배열과 리스트는 서로 반대인 부분이 많아 상황에 맞게 사용하면 되는데 주로 배열을 사용을 한다. 리스트는 크기가 변하는 데이..
디버깅은 다들 알지만 잘 사용하지 않는게 문제, 로그를 찍는거보다 더 디테일한 정보를 확인할 수 있다. 어느 IDE 든 비슷하게 실행이 되고 중단점을 지정하게 되면 중단점까지 실행할 수 있고 추적을 위한 변숫값도 지정이 가능하다. 변숫값 이외에 원하는 수식을 입력해 논리 오류 파악도 가능하다! 실제로 Value 를 나타내는 부분에서 변수들을 이용하여 산출하여 결과를 도출도 할 수 있다. 코딩테스트는 문제 발생시 로그로 찾는 시간보다 디버깅으로 찾는 시간이 더 빠르다. 왜냐하면 한 부분만 보는게 아니라 전체적인 흐름을 보기 때문에 더 빠르게 찾을 수 있다. (한번에 풀리면 다행이지만 한번 막혔을 때 문제인 부분을 잘 파악하여 해결해야 한다.) int 사용 경우 어느순간 갑자기 음수로 찍히는 경우가 있다...
(TMI) 최근 정말 가고싶었던 회사에 코딩테스트를 보았는데 시간복잡도 처리를 제대로 하지 못하여 시간 분배를 못하였다...... 결과가 어떻든 계속 도전할거다 !! 화이팅!!! 시간 복잡도 유형 - 빅-오메가 : 최선일때 연산 횟수 (예 : 반복문 100번 중 0이 가깝게 끝날때) - 빅-세타 : 보통일때 연산 횟수 (예 : 반복문 100번 중 중간쯤 끝날때) - 빅-오 : 최악일때 연산 횟수 (예 : 반복문 100번 중 끝자락에 끝날때) : 항상 최악을 염두해두어야 한다. 강의 내용 중 '빅-오' 인 최악일때를 염두해두어야 합니다. 주어지는 입력값에 조건이 주어지고 그 조건을 계산하여 횟수를 대략적으로 파악이 가능합니다.(대략 1억회 : 1초) 여러가지 시간 복잡도가 있다. 알고리즘마다 시간 복잡도를..
알고리즘은 개발의 기초가 되는 절차이고 고로 알고리즘은 문제해결 절차이다. 알고리즘 특징 : 입력, 출력, 유한성, 명백성, 효과성 (수학적 개념은 필요하나 몇몇 분야 제외하고는 너무 어려운 수학을 사용하진 않아 겁먹을 필요는 없다!) 알고리즘을 접하기 전에.. 1. 기초 프로그래밍 2. 자료구조 공부 알고리즘 사용은 어디서..? -> 프로그램 개발하는 전체 과정에서 사용이 됩니다. -> 그런데 일반적인 개발을 할 때는 높은 난이도의 알고리즘은 거의 사용되지 않습니다. -> 문제 해결 능력을 보기 위해 알고리즘 문제가 필요하다!(어려운 알고리즘 문제를 해결하게 되면 그 역량을 알 수 있기 때문..) 알고리즘은 프로그래머에게 피할 수 없는 숙명입니다. 동빈나 개발자 유튜버님의 강의를 들으며 정리하였습니다...
안녕하세요, 회사 개선사항으로 숫자 형태의 서식으로 바로 다운로드 가능하게 요청이 들어와서 처리 하였습니다. 엑셀에서 셀 입력 시 숫자 서식으로 지정하게 되면 자동으로 1000 단위에 콤마를 찍어줍니다. 제가 구현한 다운로드 기능은 따로 숫자 서식을 지정해주지 않은 부분이 있어 추가 요청사항으로 들어왔습니다. 아래 코드로 간단하게 구현 하겠습니다. @Override public void excelDown(HttpServletRequest req, HttpServletResponse res, BudgetDtlModel budgetDtl) { // 엑셀 생성 XSSFWorkbook wb = new XSSFWorkbook(); // 엑셀 sheet 생성 XSSFSheet sheet = wb.createShee..