🕹 알고리즘

    백준 :: 1202번 보석 도둑 (Python)

    백준 :: 1202번 보석 도둑 (Python)

    문제 링크 https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 접근 방식 먼저 각 가방에 담을 수 있는 보석의 최대 가격을 구하는 문제라서 보석을 가격 순으로 내림차순 정렬하고 가방마다 보석을 순회하면서 최대한 높은 가격의 보석을 담으려고 했다. 하지만 그렇게 생각하고 제약사항을 봤는데 보석과 가방의 개수가 각각 최대 30만.. 내가 생각한 풀이의 시간복잡도를 계산해보면 30만의 제곱이라..

    백준 :: 1541번 잃어버린 괄호 (Python)

    백준 :: 1541번 잃어버린 괄호 (Python)

    문제 링크 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 접근 방식 +, - 연산만 가능한 상태에서 식의 결과를 최소값으로 만드려면 최대한 큰 값을 빼주면 된다. 즉, - 뒤에 나오는 + 연산을 먼저 해주면 된다. 첫번째 예제로 살펴보면 55-50+40 의 값을 최소로 만드려면 55-(50+40) 으로 괄호를 쳐주면 된다. 그렇다면 - 를 기준으로 식을 자르고, 자른 식들을 먼저 계산한 후 전부 빼주는 식으로 구현해보자 ! 풀이 코드 i..

    알고리즘 스터디 :: 입출력 (Java, Python)

    알고리즘 스터디 :: 입출력 (Java, Python)

    백준 기준으로 입출력을 연습해볼 수 있는 아주 간단한 문제들을 모아봤다. 프로그래머스 같은 플랫폼을 이용할 때는 함수 인자로 던져주기 때문에 입출력이 필요없지만, 백준에서는 입출력 함수를 뭐 쓰냐에 따라 실행 시간이 많이 달라지기도 한다 🙋‍♂️ 문제 리스트 두 수 A,B를 입력받고 A+B를 출력하는 문제들 https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net https://www.acmicpc.net/problem/2558 2558번: A+B - 2 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) www.acmicpc.net https://ww..

    백준 :: 10951번 A+B-4 (Java, Python)

    백준 :: 10951번 A+B-4 (Java, Python)

    https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 브론즈 5에 해당하는 쉬운 문제이지만, 테스트의 종료 조건을 처리하지 못해서 틀린 사람들이 많은 것 같다. 문제를 살펴보자. 살펴볼 포인트는 두 가지이다. 공백을 기준으로 두 정수가 입력됨 더 이상 읽을 데이터가 없을 때 입력이 종료 여기서 주의할 점은 읽을 데이터가 없다는 것 ! 읽을 수 있는 데이터가 없다는 건 EOF 를 의미한다. EOF 는 End Of File. 데이터가 더 이상 존재하지 않는 파일의 끝을 의미한다. 일단 입력 방식을 여러 가지로 해서 풀어보자. 사실 방금 자바 입력 시간 줄이는 법..

    알고리즘 스터디 :: 알고리즘이란 ?

    알고리즘 스터디 :: 알고리즘이란 ?

    Algorithm 이란 어떤 문제를 해결하기 위한 여러 동작들의 모임 이다. 간단하게 이렇게 생각해보자. 학교에서 집을 갈 때 버스로 갈 수도 있고, 택시로 갈 수도 있는 상황이다. 이런 상황에서 나라면 아마 버스를 타고 갈 것이다. 왜냐면 싸니까 🫠 학교에서 집으로 가는 문제를 버스를 타는 방식으로 해결 하는 것 ! 이게 바로 알고리즘 이다. 항상 어떤 문제를 해결하는 방법이 똑같은 건 아니다. 만약 치킨을 시켰는데 벌써 도착해버렸다면? 택시를 타고 빨리 집에 가는 방법을 선택할 것이다. 이런 식으로 어떤 조건이 바뀌게 되면 문제를 해결하는 방식이 달라질 수도 있다. 공부방법 먼저 알고리즘이나 문제를 푸는 방법을 이해하기 완벽하지 않거나 일부만 이해해도 성공~ 관련 문제를 풀어보기 한 문제는 길어도 1..

    백준 :: 1237번 정ㅋ벅ㅋ (Python)

    백준 :: 1237번 정ㅋ벅ㅋ (Python)

    백준 문제 알고리즘을 조금씩 풀면서 글을 써보려 한다. 오늘은 첫번째 문제 풀이 ! 사실 이 문제는 알고리즘 문제가 아니라 넌센스 문제이다. https://www.acmicpc.net/problem/1237 1237번: 정ㅋ벅ㅋ 우주를 정ㅋ벅ㅋ할 사람에게는 예제 입력과 예제 출력이 필요하지 않다. www.acmicpc.net 문제를 살펴보자. 입력없이 "첫째 줄에 문제의 정답을 출력한다" 고만 되어있다. 무슨 말인지 알지 못해 시간이 걸렸는데.. 말 그대로 "문제의 정답" 을 출력하면 끝이다... print("문제의 정답") 끝.