no image
[알고리즘 일기] 29. 삼각화단 만들기 (Small)
삼각화단 만들기 (Small) 주어진 화단 둘레의 길이를 이용하여 삼각형 모양의 화단을 만들려고 한다. 이 때 만들어진 삼각형 화단 둘레의 길이는 반드시 주어진 화단 둘레의 길이와 같아야 한다. 또한, 화단 둘레의 길이 codeup.kr 2625(Codeup). 삼각화단 만들기 (Small) 주어진 화단 둘레의 길이를 이용하여 삼각형 모양의 화단을 만들려고 한다. 이 때 만들어진 삼각형 화단 둘레의 길이는 반드시 주어진 화단 둘레의 길이와 같아야 한다. 또한, 화단 둘레의 길이와 각 변의 길이는 자연수이다. 예를 들어, 만들고자 하는 화단 둘레의 길이가 9m라고 하면 한 변의 길이가 1m, 두 변의 길이가 4m인 화단, 한 변의 길이가 2m, 다른 변의 길이가 3m, 나머지 변의 길이가 4m인 화단, 세..
2021.05.29
no image
[알고리즘 일기] 28. 먹을 것인가 먹힐 것인가
7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 7795(Baekjoon). 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1. 두 생명체 A와 B의 크기가..
2021.05.28
no image
[알고리즘 일기] 27. 디지털 도어락
2650(Codeup) : 디지털 도어락 XX사에서 만든 디지털 도어락은 내부적으로 보안키 값을 가지고 있고, 이 값은 1,000이하의 자연수로 이루어져 있다. 각 카드키들은 ID값을 가지고 있는데, 이 값이 도어락의 내부 보안키 값의 약수이면 이 도어락을 열 수 있다. 길동이는 △△사에서 근무하고, △△사는 XX사에서 만든 디지털 도어락을 쓴다. 길동이가 자신의 사무실로 가기 위해서는 3개의 문을 통과해야 한다. 길동이는 자신이 통과해야하는 3개의 문의 내부 보안키 값을 알고 있을 때, 이 3개의 문을 모두 열 수 있는 만능 보안키를 여러분에게 의뢰했다. 길동이를 도와주자. 단, 보안키의 ID값이 클수록 제작비용이 적다. 최소한의 비용을 마스터 보안키를 만드는 프로그램을 작성하시오. 입력 세 자연수가 ..
2021.05.27
no image
[알고리즘 일기] 26. 최소 대금
최소 대금 입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다. 1행의 정수는 첫 번째 파스타 가격이다. 2행의 정수는 두 번째 파스타 가격이다. 3행의 정수는 세 번째 파스타 가격이다. 4행 codeup.kr 2001(CodeUp) : 최소대금 열정이 불타오르는 신입생 지웅이는 최대한 많은 수업을 들을 수 있는 수업 조합으로 수강 신청을 하려고 합니다. 파파 파스타 가게는 점심 추천 파스타와 생과일 쥬스 세트 메뉴가 인기가 좋다. 이 세트 메뉴를 주문하면 그 날의 3 종류의 파스타와 2 종류의 생과일 쥬스에서 하나씩 선택한다. 파스타와 생과일 쥬스의 가격 합계에서 10%를 더한 금액이 대금된다. 어느 날의 파스타와 생과일 쥬스의 가격이 주어 졌을 때, 그 날 세트 메뉴의 대금의 최소값을..
2021.05.26
no image
[알고리즘 풀이방법] 알고리즘 평가법
시간 복잡도(Time Complexity) : 인풋 크기에 비례하는 알고리즘의 실행 시간을 나타낸다. 공간 복잡도(Space Complexity) : 인풋 크기에 비례하여 알고리즘이 사용하는 메모리 공간을 나타낸다. 빅오 표기법(Big-O Notation) nnn을 매우 크다고 가정한다. 절대적인 시간이 아닌 성장성을 보고 판단한다. O(1) : input의 크기가 소요 시간에 영향❌ (반복문이 없는 경우 대체로O(1)) O(n) : 반복되는 횟수∝ input의 크기 O(n^2) : 보통 중첩 반복문(반복문 내에 반복문이 있는 경우) O(n^3) : 중첩 반복문 O(lgn) : 보통 두배씩 증가
2021.05.26
no image
[알고리즘 풀이방법] 알고리즘 패러다임
탐색 선형 탐색 알고리즘(Linear Search Algorithm) 최선의 경우 : 1 최악의 경우 :O(n) 이진 탐색 알고리즘(Binary Search Algorithm) 📢 정렬된 자료일 경우에만 사용 가능하다. 최선의 경우 : 1 최악의 경우 :log2n 재귀 함수 base case : 문제가 이미 충분히 작아서 바로 풀 수 있는 경우 recursive case : 문제를 더 작은 문제로 쪼개서 풀 수 있는 경우(재귀) 반복문으로 풀 수 있는 문제는 재귀 함수로 풀 수 있다. 재귀 함수의 문제점 call stack이 너무 많이 쌓이게 되면 프로그램 과부하 발생 재귀 함수의 호출이 너무 많이 발생하면 반복문으로 푸는 게 좋음 알고리즘 패러다임 Brute-Force Attack(무차별 대입 공격) ..
2021.05.26
no image
[C 이론] 10. 배열
데이터 유형에 따른 사용 상수(constants) : 고정된 값을 사용 변수(variable) : 모든 데이터를 각각 독립적으로 사용 배열(array) : 동일한 데이터 타입의 변수를 묶어서 사용 구조체(struct) : 서로 다른 데이터 타입의 변수를 묶어 사용 포인터(pointer) : 메모리에 직접 접근하여 사용 배열(Array) : 같은 타입의 변수들로 이루어진 유한 집합 선언 형식에 따라 n차원 배열 구성 가능 int score[5]; //1차원 배열 int score[3][5]; //2차원 배열 int score[2][3][5] //3차원 배열 요소(element) : 배열을 구성하는 각각의 값 (=원소) 인덱스(index) : 배열에서의 위치를 가리키는 값 💡 배열의 인덱스는 0부터 시작하며..
2021.05.26
no image
[알고리즘 일기] 25. 수강 신청 분석
수강 신청 분석 이번 학기 ♣♧대학교의 수업 리스트가 나왔습니다. [(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 6), (13, 16), (9, 11), (1, 8)] 리스트에 담겨있는 튜플들은 각각 하나의 수업을 나타냅니다. 각 튜플의 0번째 항목은 해당 수업의 시작 교시, 그리고 1 번 항목은 해당 수업이 끝나는 교시입니다. 예를 들어서 0번 인덱스에 있는 튜플값은 (4, 7)이니까, 해당 수업은 4교시에 시작해서 7교시에 끝납니다. (2, 5)를 듣는다고 가정합니다. (4, 7) 수업은 (2, 5)가 끝나기 전에 시작하기 때문에, 두 수업은 같이 들을 수 없습니다. 반면, 수업 (1, 3)과 (4, 7)은 시간이 겹치지 않기 때문에 동시에 들을 수 있습니다. (단..
2021.05.26
no image
[알고리즘 일기] 24. 지각 벌금 적게 내기
지각 벌금 적게 내기 익중이네 밴드부는 매주 수요일 오후 6시에 합주를 하는데요. 멤버들이 너무 상습적으로 늦어서, 1분에 1달러씩 내야 하는 벌금 제도를 도입했습니다. 그런데 마침 익중이와 친구 넷이 놀다가 또 지각할 위기입니다. 아직 악보도 출력해 놓지 않은 상황입니다. 어차피 같이 놀다 늦은 것이니 벌금을 다섯 명이서 똑같이 나눠 내기로 하고, 벌금을 가능한 적게 내는 방법을 고민해 보기로 합니다. 다섯 사람이 각각 출력해야 하는 페이지 수는 3장, 1장, 4장, 3장, 2장입니다. 프린터는 한 대밖에 없고, 1장을 출력하기 위해서는 1분이 걸립니다. 현재 순서대로 출력한다면, 첫 번째 사람: 33분 지각 두 번째 사람: 3 + 13+1분 지각 세 번째 사람: 3 + 1 + 43+1+4분 지각 네 ..
2021.05.26