본문 바로가기

알고리즘/백준158

[BAEKJOON]25206 너의 평점은 문제 요약알고리즘 분류: 구현, 문자열난이도: Bronze1문제내용:입력한 문자열 5줄을 세로로 읽은 순서대로 글자를 출력한다.사이트: https://www.acmicpc.net/problem/10798문제풀이 이번 문제는 어떻게 가로 문자열을 세로로 구현 하는 방법만 알면 되기때문에 구현은 아래와 같이 하면 쉽게 풀 수 있는 문제이다. 2차원 배열/리스트를 만들어 각 열의 문자들을 저장합니다.5줄의 입력을 처리하면서 각 문자를 해당하는 열 인덱스에 저장합니다.열의 개수는 입력에 따라 달라질 수 있으므로, 필요에 따라 동적으로 열을 추가합니다.모든 입력을 처리한 후, 각 열의 문자들을 순서대로 이어붙여 결과 문자열을 생성합니다.CodePythonstrings = [[]] # 2차원 리스트 초기화, 세.. 2025. 4. 24.
[BAEKJOON]25206 너의 평점은 문제 요약알고리즘 분류: 구현, 수학난이도: Silver5문제내용:전공평점은 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값P/F 과목 중 등급이 'P'인 과목은 계산에서 제외해야 함20줄에 걸쳐 과목명, 학점, 등급이 주어짐사이트: https://www.acmicpc.net/problem/25206문제풀이 이번 문제는 단순하게 구현과 소수 계산을 요구 하는 문제이다. 등급에 따른 과목평점을 정의 한 다음 과목평점이 P를 제외한 총학점과 총 과목 평점을 계산한 뒤 총 과목 평점 / 총 학점계산만 하면 끝이다. 자세한것은 아래 코드보면 된다.CodePython# 등급에 따른 과목평점 정의grades = { "A+" : 4.5, "A0": 4.0, "B+": 3.5, "B0": 3.. 2025. 4. 17.
[BAEKJOON]2748 피보나치 수 2 문제 요약알고리즘 분류: dp난이도:  Bronze1문제내용:피보나치 수는 0과 1로 시작한다. 피보나치 식은 아래와 같다.Fn = Fn-1 + Fn-2 N이 주어 졌을때 피보나치 Fn을 구하여라 (N 사이트: https://www.acmicpc.net/problem/2748문제풀이이번 문제는 재귀 호출로 풀기에는 숫자가 커질수록 계산량이 급격히 증가하기 때문에, 동적 계획법(Dynamic Programming, DP*을 사용해야 효율적으로 해결할 수 있다. 동적 계획법에 대해 잘 모르신다면, 아래 링크를 통해 자세한 설명을 확인 해보면 된다.https://jih3508.tistory.com/89 [알고리즘 이론] 동적계획법(Dynamic Programming, DP)이론 이번에 볼 알고리즘은 동적계획법.. 2025. 1. 14.
[BAEKJOON]1965 상자넣기 문제 요약알고리즘 분류: dp, LIS난이도:  Silver2문제내용:상자가 일렬로 있다. 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 있다.. 예를 들어 앞에서부터 순서대로 크기가 (1, 5, 2, 3, 7)인 5개의 상자가 있다면, 크기 1인 상자를 크기 5인 상자에 넣고, 다시 이 상자를 크기 7인 상자 안에 넣을 수 있다.앞의 예에서 차례대로 크기가 1, 2, 3, 7인 상자를 선택하면 총 4개의 상자가 한 개의 상자에 들어가게 된다.상자의 크기가 주어질 때, 한 번에 넣을 수 있는 최대의 상자 개수를 출력하는 프로그램을 작성하시오.사이트: https://www.acmicpc.net/problem/1965문제풀이 이번 문제에는 모든.. 2024. 11. 27.
[BAEKJOON]11055 가장 큰 증가하는 부분 수열 문제 요약알고리즘 분류: dp, LIS난이도:  Silver2문제내용:수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 부분 수열은 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 이고, 합은 113이다.사이트: https://www.acmicpc.net/problem/11055문제풀이 이번 문제에는 모든 경우의 수를 구해서 풀기가 힘들다. 모든 경우의 수를 구하 O(N^N)개 이상으로 나올수 있다. 그래서 이번 문제는 LIS 개념을 적용해서 풀어야 한다. LIS에 대한 개념은 아래 글에서 확인 해보면된.. 2024. 11. 24.
[BAEKJOON]11722 가장 긴 감소하는 부분 수열 문제 요약알고리즘 분류: dp, LIS난이도:  Silver2문제내용:수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10}  이고, 길이는 3이다.사이트: https://www.acmicpc.net/problem/11722문제풀이 이번 문제에는 모든 경우의 수를 구해서 풀기가 힘들다. 모든 경우의 수를 구하 O(N^N)개 이상으로 나올수 있다. 그래서 이번 문제는 LIS 개념을 적용해서 풀어야 한다. LIS에 대한 개념은 아래 글에서 확인 해보면된다.https://jih3508.tistory.com/46 [알고리즘.. 2024. 11. 24.