일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 Sunflower 스터디
- 2022년 6월 일상
- flutter network call
- 막내의막무가내 코틀린 안드로이드
- 막내의 막무가내
- 막내의막무가내 목표 및 회고
- 안드로이드
- 막내의막무가내 코볼 COBOL
- Fragment
- 막내의막무가내 플러터 flutter
- 막내의막무가내 플러터
- 막내의막무가내 안드로이드
- 주택가 잠실새내
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 일상
- 막내의막무가내 알고리즘
- 막무가내
- 막내의막무가내 SQL
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 rxjava
- 안드로이드 sunflower
- 주엽역 생활맥주
- 부스트코스에이스
- 막내의막무가내 프로그래밍
- 막내의막무가내
- 막내의막무가내 코틀린
- 프래그먼트
- 막내의 막무가내 알고리즘
- 부스트코스
- 프로그래머스 알고리즘
- Today
- Total
목록알고리즘 (200)
막내의 막무가내 프로그래밍 & 일상

www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트랙킹 시리즈문제 중 하나인 백준 15663 N과 M (9)를 풀었습니다. 오름차순으로 숫자들을 나열하되 중복된 숫자는 두 번 출력하면 안되었습니다. 그래서 오름차순으로 정렬하고 set을 이용해 중복된 숫자는 안나오게 백트랙킹을 구현했습니다. 풀이는 다음과 같습니다. [Java] import java.util.Arrays; import java.util.HashSet; import java.util.Scan..

www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 이전 플로이드 문제에 이어 백준 플로이드 워셜 알고리즘 유형에서 한 문제를 풀어봤습니다. 너비우선탐색으로도 풀 수 있지만 플로이드 워셜을 학습하기 위해 플로이드로 풀었습니다. ㅎㅎ 풀이는 다음과 같습니다. [Java] import java.util.Scanner; class Main { private static int n; // 유저의 수 private stat..

www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 알고리즘 플로이드 워셜 유형을 풀어봤습니다. chanhuiseok.github.io/posts/algo-50/ 알고리즘 - 플로이드-워셜(Floyd-Warshall) 알고리즘 컴퓨터/IT/알고리즘 정리 블로그 chanhuiseok.github.io blog.naver.com/ndb796/221234427842 24. 플로이드 와샬(Floyd Warshall) 알고리즘 지난 시간에는 다익스트라(Dijkstra) ..

programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 프로그래머스 LV2 배달 문제를 풀어봤습니다. ㅎㅎ 1번 마을에서 K 이하의 시간으로 배달을 갈 수 있는 마을의 개수를 구하는 문제입니다. 그래서 1번 마을에서 각 마을간의 최단경로(최단시간)를 구해서 K시간 이하가 몇개 있는지 답을 구하면 됩니다. 다익스트라가 사용되며 도시의 개수는 N개 그리고 한 도시의 주변 개수는 road.length 이므로 각..
보호되어 있는 글입니다.

www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 백준 알고리즘 분류에서 백트랙킹 한 문제를 풀어봤습니다. ㅎㅎ 수열이 있는데 해당 수열들의 조합의 합이 S가 되는 경우의 수를 찾는 문제입니다. 보통의 백트랙킹 문제와 다르게 DFS()에서 for문이 필요하진 않았습니다. 풀이는 주석을 달아놨습니다. [JAVA] import java.util.Scanner; class Main { static int[] num; private..

www.acmicpc.net/problem/16398 16398번: 행성 연결 홍익 제국의 중심은 행성 T이다. 제국의 황제 윤석이는 행성 T에서 제국을 효과적으로 통치하기 위해서, N개의 행성 간에 플로우를 설치하려고 한다. 두 행성 간에 플로우를 설치하면 제국의 함 www.acmicpc.net 최소신장트리 복습 겸 백준 분류별 풀기에서 기본 유형을 하나 풀어봤습니다. 이전에 많이 풀었던 유형이라 설명은 생략하도록 하겠습니다. [Java] import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; class Main { private static int[] parent; ..

programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 프로그래머스 LV3 그리디 유형의 선 연결하기 문제입니다. 섬이 여러개 있는데 최소 비용으로 모든 섬을 연결해야합니다. 전형적인 최소신장트리 문제로 크루스칼 알고리즘을 사용하게 됩니다. 오랜만에 푸는 유형이었습니다. youngest-programming.tistory.com/category/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/%EC%9C%A0%EB%8B%88%EC%98%A8%ED%8C%8C%EC%9D%B8%EB%93%9C%2C%20%EC%B5%..

www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net 백준 그리디 유형 분류에 있는 문제이자 우선순위큐를 사용하여 풀 수 있는 문제입니다. 시작하는 시간과 끝나는 시간을 알려주는데 최대 몇개의 강의실이 필요한지 구하는 문제였습니다. 먼저 시간이 정렬되어서 입력이 안오므로 빠른시작시간순과 빨리 끝나는 순서로 정렬을 해줍니다. 그 후 우선순위큐를 사용하여 최대 몇개의 강의실이 필요한지 계산합니다. 코드를 보면 이해할 수 있으니 자세한 내용은 생략하도록 하겠습니다. 풀이는 다음과 같습니다. [Java] import ..

programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 프로그래머스 LV3 동적계획법(DP) 문제 등굣길을 풀어봤습니다. 집에서 학교까지 웅덩이를 피해 갈 수 있는 모든 최단 경로의 수를 구하면 되는 문제였습니다. 집은 1,1 학교는 n,m 에 있고 최단 거리만 계산하면 되므로 상하좌우가 아닌 우측과 하단으로 이동만 하면 됩니다. row와 col 인덱스로 이루어진 이중 배열을 만들고 값으로는 해당 지점까지 오는데까지의 ..

www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 백준 BFS 유형의 백준 2146 다리만들기 문제입니다. 여러개의 섬이(1) 있는데 바다에(0) 최소의 다리 개수를 설치하여 여러개의 섬들 중 두 개의 섬을 이을 수 있게 하려는 문제 입니다. BFS를 살짝 응용한 문제입니다. 처음에 너무 비효율적으로 자원을 소비하는건가 했는데 통과되었습니다. 풀이를 간략히 설명하면, 1. 섬마다 번호가 똑같으므로 바로 BFS로 다른 섬을 찾아 연결하기가 힘듭니다. 그러므로 섬에 각..

www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 백준 이분탐색 유형 문제입니다. 지방마다 갖고 있는 예산이 다른데 국가에서 총 예산 M 이하를 걷으려고합니다. 총 M이하의 예산이하라는 조건에서 지방마다 최대 얼마를 걷을 수 있는지 구하는 문제입니다. N의 개수를 보아 완전탐색으로 풀면 시간초과가 뜰겁니다. 이분탐색으로 풀어야합니다. 이분탐색에서 left 는 0 (최소 예산) right 는 지방예산중 가장 큰 금액 (최대 예산) 으로 하여 탐색을 시작합니..

www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 백준 그래프 유형분류에서 푼 안전영역이라는 문제입니다. ㅎㅎ 지역마다 높이가 다른데 해당 높이보다 같거나 큰 비가 오면 지역이 물에 잠기게 됩니다. 모든 비오는 경우의 수에서 물에 안잠긴 지역들의 구역이 최대일때 몇 구역인지 구하는 기본적인 BFS 유형의 문제였습니다. 비에와서 잠긴 부분을 벽(isUnderWatered)라고 생각하고 풀면 됩니다. 풀이는 주석으로 충분하며 다음과 같습니다. [Java] import j..

programmers.co.kr/learn/courses/30/lessons/43238?language=java 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 프로그래머스 LV3 이분탐색 유형인 입국심사라는 문제를 풀어봤습니다. 각자 심사하는데 걸리는 시간이 다른 심사관들이 있는데 N명을 심사하는데 걸리는 최소시간을 구하는 문제입니다. 주석에 풀이를 자세히 적어놨고 간략히 설명하면 다음과 같습니다. 1. 걸리는 시간의 최소와 최대를 이분탐색의 left, right로 설정합니다. 2. 이분탐색 시간(mid)을 ..

www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 백준 분류별 풀기에서 이분탐색문제인 숫자 카드를 풀어봤습니다. 먼저 기본적인 이분탐색문제 중 하나였습니다. 경우의 수를 보면 알다시피 보통 시간초과를 일으키는 문제라는 경고의 수인 50만개까지 데이터가 있을 수 있습니다. 완전탐색으로 문제를 해결하면 당연히 시간초과가 나게됩니다. 그러므로 이분탐색을 사용하여 O(N)을 O(logN) 시간복잡도를 줄여주도록 합시다. 추가로 출력시 S..