일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- springboot
- 인공지능
- Xcode
- 프로그래밍언어론
- 네트워크
- 오블완
- 아이패드다이어리
- JPA
- AI
- 스프링부트
- 다이어리
- 리눅스
- 데이터베이스
- 42seoul
- Spring
- 소켓
- CD
- libasm
- swift
- MySQL
- CI
- DBMS
- jenkins
- 스프링
- javascript
- sql
- 오라클
- 티스토리챌린지
- 스프링부트 웹 소켓
- Today
- Total
목록알고리즘&자료구조 (7)
Hi yoahn 개발블로그
https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begi..
최대 공약수 구하는 알고리즘 1. 두 수를 입력 받는다. 2. 큰 수를 작은 수로 나눈 나머지를 구한다. 3. 큰 수를 작은 수로 바꾸고 작은 수에는 구한 나머지 수를 넣는다. 4. 작은 수가 0이 될 때까지 2-3번을 반복한다 5. max_num min_num(=0) 마지막 큰 수가 최대공약수이다. #include using namespace std; int main(){ int n1, n2, max_num, min_num, mod; cin >> n1 >> n2; max_num = n1>n2?n1:n2; min_num = n1
- 배열 기반의 리스트에서 중간에 데이터 삽입/삭제할 때 시간복잡도 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에서 해야 하는 처리가 서로 다릅니다. 언어를 불문하고, 레퍼런스를 참고해서 사용법을 ..