목록분류 전체보기 (80)
ღ yuni_world ღ
📌구현이란?구현(Implementation)이란 머릿속에서 구상한 알고리즘을 실제 소스코드로 옮기는 과정을 의미한다. 코딩테스트에서 ‘구현 문제’란 단순히 코드 작성 능력을 넘어 주어진 조건을 정확하게 해석하고 실수 없이 그대로 구현하는 능력을 평가하는 유형을 말한다.✔️ 구현 문제 특징구현 문제는 알고리즘자체는 쉽지만 코드로 옮기는 과정이 복잡한 경우가 많다.고차원적인 알고리즘 지식이 필요한 편은 아니지만 아래와 같은 특징이 있다. 조건이 많고처리해야 할 경우의 수가 다양하며인덱스나 시뮬레이션 과정에서 실수하기 쉽다따라서 문법에 익숙하고 꼼꼼하게 코드를 짜는 능력이 있다면 비교적 수월하게 풀 수 있는 편이다. ✔️ 구현 문제의 예시 알고리즘은 간단하지만 코드 길이가 지나치게 길어지는 문제 문자열..
📌 문제링크https://www.acmicpc.net/problem/2839📌 문제풀이n = int(input())cnt = 0while n >= 0: if n % 5 == 0: # 현재 값이 5로 나누어 떨어지면 cnt += n // 5 # 필요한 5kg 봉지 개수를 더하고 print(cnt) # 결과 출력 후 종료 break n -= 3 # 5로 나누어지지 않으면 3kg 봉지를 하나 사용하고 cnt += 1 # 사용 횟수 증가else: print(-1) # 반복을 끝까지 돌..
📌 문제링크https://www.acmicpc.net/problem/1541 📌 문제풀이nums = input().split('-') # 입력받은 문자열을 '-' 기준으로 분리result = sum(map(int, nums[0].split('+'))) # 맨 앞 부분의 합을 초기값으로 설정for part in nums[1:]: result -= sum(map(int, part.split('+'))) # 이후 그룹들의 합을 차례대로 빼기print(result)입력받은 문자열을 - 기준으로 분리한 뒤 첫 번째 그룹의 합을 초기값으로 만든다.이후 등장하는 각 그룹의 합을 map과 sum 함수를 활용해 계산해 차례로 빼 준다.- 기준으로 분리하는 이유?- 기준으로 분리된 각 그룹 내의 합을 먼..
📌 그리디란? 그리디 알고리즘은 말 그대로 지금 이 순간 가장 좋아 보이는 선택을 하는 방식으로 문제를 해결하는 알고리즘이다. 현재 단계에서 최선이라고 판단되는 해만 고르며 나중에 그 선택이 어떤 영향을 미칠지는 고려하지 않는다.✔️ 그리디 알고리즘의 특징단순하고 직관적인 해결 방법복잡한 탐색 과정 없이 현재 상황에서 가장 좋아 보이는 해를 선택한다.그리디가 통하려면 문제 속에 숨어 있는 규칙을 찾아야 한다.즉 최소한의 아이디어만 떠올리면 훨씬 간단하게 해결되는 유형이 많다.EX> 동전 거스름돈 문제에서 가장 큰 단위의 동전부터 사용하는 방식.정렬과 자주 함께 출제많은 그리디 문제는 “가장 큰 순서대로”, “가장 작은 순서대로” 등 정렬 기준을 명시적으로 또는 암시적으로 제시한다.따라서 그리디 문제는 ..