일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jenkins
- 소켓
- Spring
- libasm
- AI
- 오블완
- swift
- sql
- 오라클
- 리눅스
- 인공지능
- 스프링부트 웹 소켓
- MySQL
- 스프링부트
- springboot
- 네트워크
- 티스토리챌린지
- 아이패드다이어리
- 데이터베이스
- IOS
- DBMS
- 다이어리
- CD
- javascript
- Xcode
- CI
- JPA
- 42seoul
- 스프링
- 프로그래밍언어론
- Today
- Total
목록알고리즘&자료구조/노트 (4)
Hi yoahn 개발블로그
- 배열 기반의 리스트에서 중간에 데이터 삽입/삭제할 때 시간복잡도 O(N) - 내장된 정렬 함수 사용 - 퀵소트 구현 시 피벗을 랜덤으로 잡기 - 힙소트, 머지소트 O(nlogn) - DP -> Memoization : 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술. (동적 계획법의 핵심) - DFS로 최단거리 구하기 xxx -> 불가능하거나, 시간초과 - BFS는 큐에 넣을 때 방문 체크를 해야 중복 방문이 일어나지 않음 - 큐의 크기는 적어도 방문할 수 있는 정점의 총 개수보다는 크게 지정
- package wha; 는 모두 지우고 제출 - 클래스 이름은 Main 이어야 함 - Scanner 는 하나만 - 포장클래스 객체 간 비교는 equals 메서드로 비교 - Scanner 는 느린 입력 -> BufferedReader 를 사용
cin, cout 을 사용하려면 int main(){ ios::base::sync_with_stdio(); cin.tie(NULL); cout.tie(NULL); return 0; } 저 세줄을 추가해줘야 속도가 빨라진다. - 답을 k로 나눈 나머지를 출력한다. : 답을 구하는 과정에서 k로 모듈러 연산을 해야 오버플로우를 막을 수 있다. - 지역변수 & 지역 배열은 초기화가 안되어 있음 - 전역 배열 = {1}; -> 첫 원소만 1, 나머지는 0 - float : 부정확 - double 사용 - char 배열에 10자의 문자열을 담으려면 배열의 크기는 11 이상 -> 배열 끝에 '\0' 널 문자를 담아야 함 - atoi 에 널 문자로 끝나는 문자열을 넘겨줘야 함 char 주소를 넘겨주면 안됨 - sca..
백준 10951 이 문제의 목적은 파일의 끝(EOF)을 올바르게 판단하는 법을 연습하는 것입니다. 총 몇 줄이 주어진다 등의 정보는 절대 입력으로 주지 않습니다. 또한 단순히 키보드로 입력 내용만 적고 프로그램이 종료되지 않은 상태까지만 봐서는 EOF를 제대로 처리했는지 알 수 없습니다. 더 이상 읽을 게 없을 때 프로그램을 종료하는 법을 알아야 합니다. 그 방법은 언어마다 다르고 사용하는 함수마다 다르니, 구글에 "C언어 EOF" 와 같이 검색해서 그 방법을 알아보세요. 주로 파일 입출력으로 설명되어 있겠지만, 입력 스트림도 파일 입력이기 때문에 결국 동일합니다. 자바의 경우 Scanner와 BufferedReader에서 해야 하는 처리가 서로 다릅니다. 언어를 불문하고, 레퍼런스를 참고해서 사용법을 ..