일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitbash
- taskkill
- Anaconda
- terminate
- 코딩온라인
- Morphological analysis #Corpus
- address
- #스파르타코딩클럽후기 #내일배움캠프후기
- github
- 모바일웹스킨
- 출처: 자바의 신 8장
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- 플젝후체크
- 파이썬
- Technical Writing
- SSR
- Kakao
- 클라이언트사이드렌더링
- 서버사이드렌더링
- expression statement is not assignment or call html
- khaiii
- 비동기
- 자바파이썬
- 파이콘
- 마크다운
- github markdown
- Machine Learning
- 필사
- PID
- Today
- Total
목록Tech/Algorithm (5)
개발 일기
동전 교환 문제를 풀다가, runtime Error 에 막혀서, 이번 기회에 정리해둔다. 이 글은 백준 커뮤니티 글과 https://www.acmicpc.net/board/view/22980 아래 블로그를 참고했다. https://www.secmem.org/blog/2020/09/19/rte/ 글 읽기 - 주로 런타임 에러가 발생하는 이유는 무엇인가요? 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net 동전 교환 문제를 풀다가, runtime Error 에 직면했다. 문제 출처 (자바 코딩 테스트 준비 김태원 강사님 강의) 설명 다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다. 입력..
재귀함수란? 함수가 자기 자신을 호출하는 것이다. 재귀함수를 왜 쓸까? 재귀함수는 반복이라는 면에서 for 문과 유사하다. 하지만 for 문은 for 문이 완료되고 나면, 아래 예시처럼 자료구조에(ex. stack) 저장하지 않는 이상 이전 수행 코드의 정보를 사용할 수 없다. 재귀함수를 쓰면, 운영체제가 스택메모리에 정보를 저장하기 때문에 개발자가 따로 자료구조 구현을 하지 않아도 된다 (참고) Stack st = new Stack(); for (char x : str.toCharArray()) { if (x == 'a') st.push(x); } 스택프레임이란? 스택 영역에 함수의 호출 정보가 쌓이는 것이다. 스택 영역에는 지역변수, 파라미터 등이 저장된다. StackOverFlow 에러는 DFS/재..
for (int j = 0; j < 10; j++) { num[j] = (char) j; System.out.println(num); } num[1] = (char) 1 //즉'1'이 되는 줄 알았다. 그런데 char의 1의 numeric value 는 1이 아니다. 48이다. 그렇기 때문에 int를 char 로 바꿔줄 때는, 아스키 코드에 맞춰서 변환해줘야한다. '0'은 48을 가지기 때문에, char(48) = '0' 이 된다. for (int j = 0; j < 10; j++) { num[j] = (char) ('0' + j); System.out.println(num); } https://stackoverflow.com/questions/53096607/java-problem-with-castin..
알고리즘 공부에 대한 마음의 장벽이 높아진다. 나는 공부를 꼼꼼히 하는 편이고, 새로운 것에 적응할 때 시간이 필요한 타입이다. 부트캠프 특성상 다양하게 배우다보니 (알고리즘, AWS, 실전 프로젝트, 자바, 파이썬, 자바스크립트 등등..) 마음은 조급한데, 익숙해지지는 않아서 재미를 붙이기가 어려웠다. 부트캠프는 압축 성장에 최적화 되어 있다. 압축 성장이 가능한 이유는, 커리큘럼보다도 동료들 덕분이다. 나와 같이 시작한 팀이 앞서가고, 때론 날아다니는 걸 보면 긴장하고 자극받는다. 그런데 압축적인 스트레스도 함께온다. 내가 익숙했던 경영/문과 공부는 시간에 비례해서 성장할 수 있었지만, 프로그래밍 공부는 외국어 공부와 비슷해서, 절대적인 시간과 공부량이 필요했다. 그래야만 한 단계를 넘을 수 있다. ..
Big O 표기법이란? 알고리즘의 성능을 수학적으로 표기한 것이다. 알고리즘의 시간/공간 복잡도 표현할 수 있다. 실제 러닝 타임보다는, 데이터나 사용자의 증가율에 따른 알고리즘의 성능 예측이 목표다. 그래서 상수를 1로 취급하는 것이다. (1) O(1) 알고리즘 -> 입력 데이터의 크기에 상관없이, 언제나 일정한 시간이 걸림. 데이터가 증가해도 걸리는 시간(성능)은 변하지 않는다. (2) O(N): 입력 데이터의 크기에 비례해서 처리 시간 증가 (N이 늘어날 때마다) (3) O(mN) (4) O(N제곱) (5)O (N 세제곱) 등이 있음. O(log N) - binary search 한번 검색할 때마다, 검색해야하는 양이 반으로 줄어듬. 데이터가 늘어남에 따라서, O(n)보다 O(log(n))의 처리 ..