geniusjo16(714)
-
[백준/BOJ] 백준 1599번 : 민식어
https://www.acmicpc.net/problem/1599 1599번: 민식어 첫째 줄에 민식어 단어의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 한 줄에 하나씩 단어가 입력으로 들어온다. 단어의 길이는 최대 50자이다. 민식어에 없는 알파벳이 www.acmicpc.net 입력받은 민식어 단어를, 순서에 매치되는 알파벳 단어로 만들고, 알파벳 단어로 만들어진 단어들을 정렬한 뒤, 다시 순서에 매치되는 민식어로 바꾸어 문제를 해결했다 코드 #include #include #include #include #include using namespace std; int n; vector makeds; vector inputs; map m_to_a; map a_to_m; voi..
2022.02.06 -
[백준/BOJ] 백준 13505번 : 두 수 XOR
https://www.acmicpc.net/problem/13505 13505번: 두 수 XOR N개의 수가 주어졌을 때, XOR한 값이 가장 큰 두 수를 찾는 프로그램을 작성하시오. 즉, A1, A2, ..., AN 중에서 i ≠ j이면서 Ai XOR Aj 가 가장 큰 것을 찾아야 한다. www.acmicpc.net 입력받은 수들을 이진수의 문자열로 만들고, 가장 긴 문자열을 기준으로 같은 길이의 문자열로 만들어서 트라이에 넣은 뒤 트라이를 통해 문제를 해결했는데, 어떤 숫자와 XOR연산으로 가장 큰 수를 만들 수 조합의 숫자는 앞쪽의 비트가 먼저 반전이 되는 경우일수록 큰 수를 만들 수 있다는 것을 이용하여 문제를 해결했다. 코드 #include #include #include #include usi..
2022.02.06 -
[백준/BOJ] 백준 2661번 : 좋은수열
https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 백트래킹을 통해 수열을 만들어 가며, 만들어지는 수열이 나쁜 수열인지 체크하는 방법으로 문제를 해결했다 코드 #include #include #include using namespace std; int n; bool Solve(int index, string& maked) { //해당 문자열이 나쁜 수열인지 확인 for (int i = 1; i n; string maked = ""; Solve(0, maked..
2022.02.06 -
[백준/BOJ] 백준 2437번 : 저울
https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 추의 무게를 정렬한 뒤, check를 통해 0~check까지 만들 수 있다는 상황(초기값:0)을 저장하고, 순서대로 추를 확인하여 해당 추를 0 이상 check이하 모든 값에 각각 더한다면 0~check+해당추까지 값이 만들어질 수 있는 경우인지 확인하였다. 확인하는 방법은 0(만들 수 있는 수중 가장 작은 값이 0이므로) + 해당추의 무게가 check + 1보다 크면 check+1은 값은 만들 수 없는 최..
2022.02.06 -
[백준/BOJ] 백준 13168번 : 내일로 여행
https://www.acmicpc.net/problem/13168 13168번: 내일로 여행 첫 번째 줄에는 한국에 있는 도시의 수 N(1 ≤ N ≤ 100)과 1인당 내일로 티켓의 가격 R(1 ≤ R ≤ 1,000,000)이 주어집니다. 두 번째 줄에는 N개의 도시의 이름이 주어집니다. 도시의 이름은 알파벳 대소 www.acmicpc.net cost1[][]에 내일로 티켓을 사지 않을 경우 [도시1][도시2]사이 직접 연결된 최소 비용을 저장하고, cost2[][]에 내일로 티켓을 살 경우 [도시1][도시2]사이 직접 연결된 최소 비용을 저장한 뒤, 플로이드 알고리즘을 이용해 최소 이동 비용을 구해서 이를 이용해 문제를 해결했다. 50% 할인의 표현은, 50% 할인이 아닌 비용(100% 비용)의 비용..
2022.02.06 -
[백준/BOJ] 백준 22961번 : 여행사 운영하기
https://www.acmicpc.net/problem/22961 22961번: 여행사 운영하기 당신은 성공적으로 여행사를 운영 중인 CEO다. 새로운 나라에서 여행사를 전개하고자 하는데 이를 위해서 첫 거점 도시를 정해야 한다. 새로운 나라는 $N$개의 도시가 존재하고 각 도시 간에 양 www.acmicpc.net 해당 그래프(adj1)에서 각 정점에서 출발하여 이동 가능한 위치를 연결하는 새로운 그래프(adj2)를 만들고, adj2를 강한 연결 요소(SCC)로 만들어서 해당 SCC마다 SCC에서 가장 큰 즐거움과 가장 작은 즐거움을 저장해 놓고 SCC를 위상 정렬하여 위상 정렬의 역순을 이용해서 위상 정렬의 끝부터 답을 만들어 나가는 방식으로 문제를 해결했다 코드 #include #include #..
2022.02.06