Koala - 6기/기초 알고리즘 스터디

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net
https://www.acmicpc.net/problem/10865 10865번: 친구 친구 첫째 줄에 도현이네 반 학생의 수 N(1 ≤ N ≤ 100,000), M(0 ≤ M ≤ 1,000,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 나타내는 A B가 한 줄에 하나씩 주어진다. A B가 입력으로 주어진 경우 www.acmicpc.net 문제 설명 학생 수만큼 배열을 생성해준 후 친구라는 정보를 입력 받았을때 친구 수를 count 해주면 되는 문제이다. 코드 #include using namespace std; int N,M,a,b,v[100001]; int main() { cin >> N >> M; for (int i = 1; i > a >> b; v[u]++; v[v]++; } for..
문제해석 현재 시각과 요리에 필요한 시간을 입력받는다. 그 후 요리가 완성되는 시간을 계산하여 출력한다. 코드 문제풀이 a,b에 현재시각을 입력받는다. c에는 요리에 필요한 시간을 입력받는다. 그 후 현재 시각을 분단위로 바꿔주고 요리에 필요한 시간을 더해준다. 24시간이 넘어가는것을 방지하기 위해 1440을 나눈 나머지가 요리 완성 시간이다. 이제 계산한 요리완성시간을 시와 분으로 나타내어 출력한다.
3029번: 경고 (acmicpc.net) 3029번: 경고 첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다. 둘째 줄에는 나트륨을 던질 시간 www.acmicpc.net 문제 해석 현재 시간에서 던질 시간까지 얼마나 걸릴지를 구하는 문제이다. 코드 문제 풀이 먼저 시간을 변수로 받아주고 그 변수들을 초로 변환시켜서 a와 b에 저장해 주었다. 만약 현재시간 a가 던질시간 b보다 큰 경우는 기다리다가 24시를 넘어가는 경우이므로 b에 24시간인 86400을 더해주었다. 이는 차를 구할때 음수가 나오는 것을 막아주기 위해서이다. 그 후, 던질시간 b에서 현재시간 a를 빼주어..
1182번: 부분수열의 합 (acmicpc.net) 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제 해석 비트마스크를 이용한 문제 코드 문제 풀이 문제 요구 사항을 입력받는다. 부분집합의 합을 만족하는 갯수 구하기 위한 변수를 설정한다. 비트마스크를 이용해 1부터 2^n까지 순회할 것이다. i를 이진수로 변환한다. 그 후에, 1을 곱하면 부분 집합에 속한 것이고 0을 곱하면 부분집합에 속하지 않은 것이다. 부분집합의 합이 만족하면 count 1을 증가한다.
https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 학생들이 처음 줄을 서는 통로를 stack1 옆에있는 다른 길을 stack2라고 하자 stack1에서 가장 앞에 있는 사람이 간식을 받을 차례이면 stack1에서 지우고 만약 받을 순서가 아니면 stack1에서 빼서 stack2로 넣자 stack2에서 가장 오른쪽에 있는 숫자가 간식을 먹을 차례면 stack2에서 가자 오른쪽 숫자를 pop해준다 stack1과stack2가 모두 비워졌을땐 Nice..
https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 문제 해결 문자열을 받고 3칸씩 건너뛰어 출력해주는 문제이다. 코드 #include #include using namespace std; int main(void) { string str; cin >> str; for (int i = 0; i < str.size(); i++) { str[i] -= 3; if (str[i] < 'A') str[i] += ..
문제해석 첫번째 줄에 심사위원의 수, 두번째 줄에 각 심사위원이 누구에게 투표했는지를 입력받고 A와 B 중 누가 더 표를 많이 받았는 지를 출력한다. 코드 문제풀이 V를 input을 통해 입력받는다. 그리고 각 심사위원이 누구에게 투표했는지를 리스트에 입력받는다. a, b 를 통해 A와 B가 각각 얼마나 표를 얻었는 지를 저장한다. for문을 통해 리스트에 저장된 표를 통해 a, b 값을 얻는다. 그 후 a, b를 비교하여 누가 더 많이 받았는 지를 판별한다.
4072번: Words (acmicpc.net) 4072번: Words Input will consist of a number of lines, each containing up to 250 characters. Words will be separated by single spaces, i.e. not by tabs, double spaces or other characters. Words may be of any length. Input will be terminated by a line containing a single www.acmicpc.net 문제 해석 문자열이 입력되면 각 단어별로 reverse해서 출력하는 것이다. #을 입력하면 종료한다. 코드 문제 풀이 문자열은 arr라는 list에 각 ..
2999번: 비밀 이메일 (acmicpc.net) 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 문제 해석 정인이의 암호 이메일을 해독하는 프로그램 만들기 코드 문제 풀이 문자열을 입력받을 공간과 길이를 입력한다. 행의 길이와 열의 길이를 선언하고, 약수가 짝수개이면 행과 열에 따라 구분되게 하고 약수가 홀수개이면 가운데 약수로 통일한다. 받은 문자열을 해독하기 위해 2차원 r행 c열을 선언한다. 입력받은 문자열 S의 문자 차례대로 하나씩 r행 c열에 삽입한다. ..
https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net A와B를 오름차순으로 정렬해 A와B를 하나씩 비교했다 A가 B보다 작아질때 까지만 count에 1씩 더해나간다 작아지게 되면 남은 B들은 A보다 모두 크므로 더이상 생각할 필요가 없다
18406번: 럭키 스트레이트 (acmicpc.net) 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 문제 해석 짝수 자릿수의 수가 주어지면 윗 자릿수 반의 수끼리 더한 값과 아래 자릿수 반의 수끼리 더한 값을 비교하여 같으면 LUCKY를 출력, 같지않으면 READY를 출력한다. 코드 문제 풀이 먼저 N을 받을때 integer가 아닌 문자열로 받고 더할 때마다 integer로 변환시켜주는 방법을 이용했다. integer로 받는다면 각 자릿수를 더하기가 더 어렵기 때문이다. 그 후, 중간 자릿수를 전체 길이에 2를 나눠 알아낸 후 for문을 이용해 윗 자릿수와 ..
KauKoala
'Koala - 6기/기초 알고리즘 스터디' 카테고리의 글 목록