본문 바로가기

전체 글369

백준 16943 숫자 재배치 문제 URL : https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작거나 같으면서, 가장 큰 값을 구해보� www.acmicpc.net 문제 접근법: 문제 그대로 숫자를 재배치해서 나올수있는 수중에서 B이하중 가장 큰값을 만들면 되는 문제입니다. 값은 10억미만이지만 10억미만의수는 아무리커도 최대 9자리수 밖에 나오지않기때문에 9글자로 만들수있는 모든 경우의수라고 해봤자 9! 입니다. 이숫자는 대략 30만 조금 넘기때문에 충분히 만들수있습니다. 만들고나서 b보다 작은지 확인하고 결과값중에서 가.. 2020. 8. 7.
백준 1956 운동 문제 URL :https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 z; map[x][y] = z; } floyd();//플로이드를 통해 모든최소경로를 구함 int mincycle = 1e+9; for (int i = 1; i 2020. 8. 7.
백준 11779 최소비용 구하기 2 문제 URL : https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스� www.acmicpc.net 문제접근법 : 최소비용을 구하는 문제이기 때문에 다익스트라를 이용하는 문제이지만 그경로들을 출력하는 문제입니다. 다익스트라를 어떻게 이용하면 그 경로들을 따라가야하는지 고민했더니 path 라는 배열을 만들어주고 현재가 cur 다음지점이 next라면 현재점에서 다음지점으로 최소경로를 갔을때 path[next]=cur로 인덱스로 활용합니다. 결국엔 시.. 2020. 8. 7.
백준 2178 미로 탐색 문제 URL : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제접근법 : 2차원으로 bfs를 이용하는 간단한 문제입니다. 연결표현은 좌우상하 총 4개의 연결선이 되겠고 bfs를 이용하여 0,0 에서 n-1,m-1로 한칸한칸 움직이면 가장 빠른 경로로 갈수있는 간단한 문제입니다. 작년에 c++ 로 풀어서 이번엔 다시풀었을때 파이썬으로 풀었습니다. 파이썬의 입력방식과 2차원 배열선언이 어려워서 많이 찾게되었지요 2가지 코드 다 올려드리겠습니다. 소스코드: 파이썬코드 1 2 .. 2020. 8. 6.