알고리즘

    [BOJ/Java] 23854_The Battle of Giants || Greedy

    [BOJ/Java] 23854_The Battle of Giants || Greedy

    23854번: The Battle of GiantsThe famous programming contest organizer decided to hold competition for champions "The Battle of Giants". There are two teams competing in the battle. Several matches are organized for the competition. Each match can end with a win for one of the teams, owww.acmicpc.net문제 설명더보기The famous programming contest organizer decided to hold competition for champions "The Bat..

    [BOJ/Python] 23854_The Battle of Giants   || Greedy

    [BOJ/Python] 23854_The Battle of Giants || Greedy

    23854번: The Battle of GiantsThe famous programming contest organizer decided to hold competition for champions "The Battle of Giants". There are two teams competing in the battle. Several matches are organized for the competition. Each match can end with a win for one of the teams, owww.acmicpc.net문제 설명더보기The famous programming contest organizer decided to hold competition for champions "The Bat..

    [Algorithm] 내가 보려고 정리한 알고리즘 모음집

    시간 복잡도 & 공간 복잡도 [Algorithm] 시간 복잡도 & 공간 복잡도 ❕ 시간 복잡도입력에 대해 총 얼마나 오래 걸리는 지를 의미한다. 알고리즘이 진행되면서 연산되는 횟수이다. 빅오 표기법을 사용하여 표현하는데, 빠르게 증가하는 항만 고려하여 표기한다.ar dmaolon00.tistory.com 탐욕(그리디) 알고리즘 [Algorithm] 탐욕(그리디) 알고리즘 || Greedy Algorithm 📌 그리디 알고리즘이란?Greedy란 '탐욕스러운'이라는 뜻으로, 탐욕법이나 욕심쟁이 알고리즘이라고도 한다. 그리디 알고리즘은 매 순간 가장 좋은 것을 선택하는 알고리즘이다. 기준에 따라 좋 dmaolon00.tistory.com DP(Dynamic Programming), 동적 계획법 [Algorit..

    [Algorithm] 탐욕(그리디) 알고리즘 || Greedy Algorithm

    📌 그리디 알고리즘이란?Greedy란 '탐욕스러운'이라는 뜻으로, 탐욕법이나 욕심쟁이 알고리즘이라고도 한다. 그리디 알고리즘은 매 순간 가장 좋은 것을 선택하는 알고리즘이다. 기준에 따라 좋은 것을 선택하는 알고리즘이기에 당장 가장 좋은 것만을 선택해 나아가도 문제가 없는지 기준을 파악할 수 있어야 한다. 그리디 알고리즘은 항상 최적의 해를 찾을 수 있는 것은 아니다. 따라서, 최적의 해를 선택하고 조건을 만족하는지, 해결이 가능한지를 확인해주어야 한다. 예시 문제 2문제 추가📌 거스름돈 찾기그리디 알고리즘에서 가장 기본적으로 풀기 좋은 문제이다.거스름돈으로는 500원, 100원, 50원, 10원짜리 동전들이 있다. 거슬러 줘야 할 동전의 최소 개수를 구하라. (단, 거슬러 줘야 할 돈 N은 항상 10의..

    [프로그래머스/Python] 60062_외벽 점검 || 구현(Implementation)

    [프로그래머스/Python] 60062_외벽 점검 || 구현(Implementation)

    https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하programmers.co.kr문제 설명 더보기 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우..

    [BOJ/Python] 15686_치킨 배달 || 구현(Implementation)

    [BOJ/Python] 15686_치킨 배달 || 구현(Implementation)

    https://www.acmicpc.net/problem/15686 15686번: 치킨 배달크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸www.acmicpc.net문제크기가 N×N인 도시가 있다. 도시는 1 ×1 크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용..

    [프로그래머스/Python] 60057_문자열 압축 || 구현(Implementation)

    [프로그래머스/Python] 60057_문자열 압축 || 구현(Implementation)

    https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문programmers.co.kr문제예제 입력 출력문자열은 제일 앞부터 정해진 길이만큼 잘라야 합니다. 따라서 주어진 문자열을 x / ababcdcd / ababcdcd 로 자르는 것은 불가능 합니다. 이 경우 어떻게 문자열을 잘라도 압축되지 않으므로 가장 짧은 길이는 17이 됩니다. "a b b a a b b a"를 나눠 묶을 수 있는 단위는 1, 2, 3, 4까지만 가능하다. 문자열을 s..

    [BOJ/Python] 16719_ZOAC || 구현(Implementation)

    [BOJ/Python] 16719_ZOAC || 구현(Implementation)

    Ohttps://www.acmicpc.net/problem/16719 16719번: ZOAC2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로www.acmicpc.net문제2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다! 규칙은 이러하다. 아직 보여주지 않은 문자 중 추가했을 때의 문자열이 사전 순으로 가장 앞에 오도록 하는 문자를 보여주는 것이다. 예를 들어 ZOAC를 보여주고 싶다면..

    [백준_python] 블랙잭 || 2798

    [백준_python] 블랙잭 || 2798

    2798번: 블랙잭 (acmicpc.net) 2798번: 블랙잭첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장www.acmicpc.net# 블랙잭 n, m = map(int, input().split()) card = list(map(int, input().split())) result = 0 for i in range(n): for j in range(i+1, n): for k in range(j+1, n): if card[i] + card[j] + card[k] > m: continue else: result = max(..