목록Algorithm (35)
지나공 : 지식을 나누는 공간
계속 추가되어 수정될 예정입니다. 입력받기 (BufferedReader, Scanner) 컬렉션 프레임워크와 종류, 차이, 주요 메소드 스택, 큐 등 해시, 해시 순회 등 다양한 정렬 : comparable, comparartor, stream 활용 등 BFS, DFS 투포인터 다익스트라 MST : 크루스칼, 프림 입력 받기 Scanner와 BufferedReader 차이 1) Scanner의 버퍼 크기는 1024 chars, BufferedReader는 8192 chars 2) BufferedReader는 문자열을 단순히 읽고 저장하지만 Scanner는 문자열을 구분해서 분석할 수 있다. 3) BufferedReader는 동기화가 지원되어 Thread-safe하고 Scanner는 지원되지 않는다. 4)..
문제 링크 : programmers.co.kr/learn/courses/30/lessons/42895 #include #include #include #include using namespace std; //k개의 N을 붙여 만든 하나의 숫자를 반환. int get_basic_number(int N, int cnt){ int res = 0; while(cnt > 0){ cnt--; res += N * pow(10, cnt); } return res; } int solution(int N, int number) { if(N == number) return 1; vector dp(9); for(int k = 1; k 0) dp[k].insert(a-b); dp[k].insert(a*b); if(a/b>0) ..
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 아악 내 반나절을 앗아간 문제..............너어어어어는 진짜.... 반나절을 앗아갔으므로 풀이를 해야 겠다. 나는 테스트 케이스 2번이 계속 통과가 안됐었는데, 찾아보니 반례가 아래 예제였다, ICN -> A, ICN -> B, B -> ICN 알파벳 순으로 가야 하니까 이걸 정렬해서 ICN 부터 들어가게 되면 ICN -> A로 ..
programmers.co.kr/learn/courses/30/lessons/59044 코딩테스트 연습 - 오랜 기간 보호한 동물(1) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- 아직 입양 못 간 out에 없는 애들 중 가장 오래 보호소에 있던 동물 3마리 SELECT i.name, i.datetime from animal_ins i left outer join animal_outs o on i.animal_id = o.ani..
programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 쉽고 직관적이어서 별 말 없이 코드만 올리려고 한다. #나간 기록은 있고 들어온 기록이 없는 데이터들 찾기 SELECT o.animal_id, o.name from animal_outs o left outer join animal_ins i on o.animal_id..
문제 출처 : www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 일단 정답 코드는 아래와 같다. 틀렸던 코드와 원인 정리는 뒤에서 하겠다. #include #include using namespace std; long long n, m, maxTree, h; vectorv; long long getM(int mid) { long long ans = 0; for (long long tree : v) { if (tree > ..
www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int map[8][8]; // r, l, b, t, rt, lt, rb, lb int dx[8] = {0, 0, +1, -1, -1, -1, +1, +1}; int dy[8] = {+1, -1, 0, 0, +1, -1, +1, -1}; char inputKy..
삼성 A형 기출문제인 파이프옮기기 1 입니다. www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 문제에서 절대 빠뜨리지 말고 봐야 하는 부분!! 이거 저만 발견 못 본거겠죠? 하..ㅋㅋ 앞으로 문제를 더 제대로 읽어야 겠네요. 옮기는 건 BFS 방식을 사용해서 가로, 세로, 대각선 방향으로 이동하면 됩니다. 현재 놓여진 방향에 따라서. 저는 위 형광펜 문장을 놓쳐서 엄청 오래 풀었어요. 대각선 방향 이동 시 체크할 칸이 더 있다. 가로..
코드 순서는, dfs 백트래킹 순열 일반 순열 (주어진 원소를 모두 나열) 주어진 원소 중 원하는 개수를 뽑아서 순열 주어진 원소에 일부 중복된 원소가 있을 때 중복 허용하기 중복 제거하기 (같은 것이 있는 순열) next_permutation 순열 일반 순열 (주어진 원소를 모두 나열) 주어진 원소 중 원하는 개수를 뽑아서 순열 주어진 원소에 일부 중복된 원소가 있을 때 중복 허용하기 중복 제거하기 (같은 것이 있는 순열) dfs 백트래킹 조합 중복된 원소가 없는 조합 next_permutation 조합 중복된 원소가 없는 조합 중복순열과 중복조합 구현하기 dfs 백트래킹 순열 - 일반 순열 (주어진 원소를 모두 나열) #include #include using namespace std; vectorv..
삼성 기출문제인 뱀입니다. www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net #include #include #include using namespace std; int map[101][101]; int n, k, l, t; int now_d = 1; deque snake; vectorv; //상우하좌 int dx[4] = { -1, 0, +1, 0 }; int dy[4] = { 0, +1, 0, -1 }; bool getAns; bool canMove() { int..