본문 바로가기

개발/알고리즘 풀이...13

[백준] 1181번 문제 풀이 www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 : 1. 문자열들을 입력받으면서 벡터에 저장 2. 벡터에 저장된 문자열들을 사용자 함수를 이용해서 정렬 3. 정렬된 벡터에서 중복된 문자열들을 제거 4. 최종적으로 계산된 벡터를 순서대로 출력 #include #include #include #include using namespace std; bool word_compare(const string& s1, const string& s2) { i.. 2021. 3. 13.
[백준] 4796번 문제 풀이 www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 내가 문제를 해결하기 위해서 가장 먼저 생각하는 것은 예제에서 주어지는 입력으로 어떻게 출력 값이 나왔지? 에 대한 의문점이다. 풀이 : 입력으로 각각 L = 5, P = 8, V = 20이 주어졌다면, 어떻게 해서 출력값이 14가 나왔을까? 문제에서 나온 지문을 그대로 가져와서 보자. "캠핑장을 연속하는 P일 중, L일동안만 사용할 수 있다. 강산이는 이제 막 V일자리 휴가를 시작했다. 강산이가 캠핑장을.. 2021. 3. 12.
[백준] 1946번 문제 www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 하... 이 문제 푸는데 3시간 걸렸당.. ㅎ(알고리즘 포기할까..) 정렬까지는 했는데 좀 더 핵심이 되는 간단한 코드를 생각하지 못해서 2시간을 허비했던 것 같다. 분명 로프 문제와 거의 똑같은 문제였는데, 왜 생각하지 못했을까. 정말 나는 빡대가리 문제를 푸는데 1시간이 걸리면 안된다는 소리가 있었지만, 이번에는 오기가 생겨서 될때까지 하다가 지쳐서 결국 답을 봐버렸다. 다만, 답을 봤.. 2021. 3. 10.
[백준] 2217번 문제 www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제는 잘 읽어보면 해결법이 보인다. 머리가 멍청한 건지... 문제를 이해하는데 5분이 걸렸다. ㅎㅎ 일단 이 로프 문제는 내 머리가 멍청함에도 불구하고 여러 번 읽어보고 직접 숫자를 적어보면서 이론적으로 이렇게 되겠다!! 라는 생각이 들어서 코드 작성 후에 검사를 했는데 역시 틀렸다. 잡소리는 그만하고 일단 문제를 풀면서 했었던 생각을 적어보겠다.. 풀이 : 입력 2 10 15 이 2개의 로프가 버틸.. 2021. 3. 9.
[백준] 11052번 문제 풀이 문제를 어느정도 숙지한 다음 끙끙 앓다가 보러 온 사람이면 좋겠다. 이 문제를 30분정도 생각해보면서 문제의 해결을 위한 방법을 1가지는 생각해냈다!! 대단한 성과다.. 하지만 생각한 방법을 코드화 하지 못했다. 다음 문제를 풀 때는 생각하고 있는 방법을 코드로 풀어내는 과정을 생각하면서 풀어보자. 1가지 생각한 방법이 뭐냐면 N값이 4가 들어온 다음 카드팩의 비용을 각각 1 5 3 6을 할당했다고 가정해보자. (물론 사람이 이걸 보면 문제를 이해했다는 가정하에 한 눈에 파악이 가능하다) 그렇다면 이 카드팩의 최대 비용은 10이 된다. 왜냐하면 카드팩 1장을 가격은 1원이고, 이걸 4번 구매해봤자 총 4원이다. 카드팩 2개의 가격은 5원이니 일단 하나를 구입하고, 1원짜리 카드팩 2개를 사게 되면 총 7.. 2021. 3. 5.
[백준] 1316 풀이 오랜만에 알고리즘 문제를 풀어봤다. 문제를 처음 봤을 때는 아무것도 몰랐지만, 계속 끙끙대면 보다보니 풀게 되었다. https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 문자열을 몇개 입력받을 것인지, 입력 받은 문자열의 그룹단어를 어떻게 찾는지, 중복을 어떻게 검사할 것인지, 어떻게 결과를 출력할 것인지... 천천히 생각하면서 차근차근 하다보면(당연한 말) 문제를 해결할 수 있는 열쇠를 얻을 수 있다. 아래는 코드.. 2020. 6. 5.