본문 바로가기

알고리즘

[알고스팟/ALGOSPOT] 24. ENDIANS 안녕하세요. 알고라파덕입니다. 24번 문제 ENDIANS 이 ENDIANS라는 문제는 그리디 문제입니다. 영어 문제로. 문제는 Lilliput, Blefuscu 이 두 나라가 존재하는데 서로 달걀을 깨는 방법이 다르다 하면서 수를 표기하는 방법 또한 다르다라고 합니다. 문제의 예로 305,419,896이라는 수가 있으면 Blefuscu 나라에서는 : 00010010 00110100 01010110 01111000 Lilliput 나라에서는 : 01111000 01010110 00110100 00010010 이렇게 표기를 합니다. Blefuscu라는 나라의 표기가 일반적인 2진수 표현이죠. Lilliput이라는 라나에서는 그 2진수 표현을 4개의 뭉떵이로 역순으로 출력을 한 것이구요 여기서 두 나라의 표기.. 더보기
[알고스팟/ALGOSPOT] 22. YULO 안녕하세요. 알고라파덕입니다. 22번 문제 YULO 이 YULO라는 문제는 그리디 문제입니다. 문제의 목적은 학생들의 점수가 주어지면, 이 학생들의 점수를 두 명씩 짝을 지어 평균값을 냅니다. 그리고 여기서 가장 큰 평균값을 가장 작게 만들었을 때 그 점수가 몇 점이 될지를 물어보는 문제입니다. 학생 수가 홀수이면 짝을 못 지은 한명은 그대로 점수가 됩니다. ex) 35 85 94 76 40 점수가 이렇게 주어진다면 (35, 94) / (40, 85) / 76 이렇게 학생들을 묶어주고 기대값을 구합니다. 64.5 / 62.5 / 76이 되어 가장 큰 값이 76이 되는데 다른 방식으로 짝을 지어도 이 76보다 작은 기대값은 존재하지 않습니다. 따라서 답은 이 76이 됩니다. YULO 출처 : https:/.. 더보기
[알고스팟/ALGOSPOT] 21. DRAWRECT 안녕하세요. 알고라파덕입니다. 21번 문제 DRAWRECT 이 DRAWRECT라는 문제는 구현 문제입니다. 문제의 목적은 직사각형을 이루는 네 점 중에서 임의의 3개의 점의 좌표가 주어지면나머지 한 점의 좌표를 구하는 것이 목적입니다.ex)5 55 77 5 이렇다면 나머지 한 점으로 직사각형을 만들 수 있어야 되므로 나머지 한 점은 (7, 7)이 됩니다~ DRAWRECT출처 : https://algospot.com/judge/problem/read/DRAWRECT 문제 정보문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)DRAWRECT10000ms131072kb45512491 (54%)출제자출처분류LIBe제1회 전국 대학생 프로그래밍 대회 동아리 연합 대회보기문제 AdbyMe, Inc. 의 인턴인.. 더보기
[알고스팟/ALGOSPOT] 20. JUMPGAME 안녕하세요. 알고라파덕입니다. 20번 문제 JUMPGAME 이 JUMPGAME이란 문제는 동적계획법으로도 해결이 가능하고 DFS(깊이 우선 탐색기법)으로도 해결이 가능하고 BFS(너비 우선 탐색기법)으로도 해결이 가능합니다. 저는 BFS(너비 우선 탐색기법) 을 보여 드리겠습니다. 문제의 요점은 게임판의 숫자만큼 행과 열로 이동을 하여 도착지점(N,N)에 도착 할 수 있는가 없는가를 구하는 문제입니다. ex) 3 2 1 1 1 1 2 2 1 0 이런 입력 데이터에서는 (1, 1)에서 오른쪽으로 2칸 이동하는 경로는 (2, 3)에 도착해 불가능하지만, (1,1)에서 아래쪽으로 2칸 이동하는 경로는 (1, 1) -> (3, 1) -> (3, 3) (3, 3)에 도착해 가능합니다. 그래서 YES를 출력합니다... 더보기
[알고스팟/ALGOSPOT] 19. WEEKLYCALENDAR 안녕하세요. 알고라파덕입니다. 19번 문제 WEEKLYCALENDAR 이 WEEKLYCALENDAR라는 문제는 구현 문제입니다. 문제의 요점은 오늘의 날짜와 요일이 주어집니다. ex) 7 27 Saturdady ex) 7 27 Monday 그럼 여기서 이 날짜가 있는 주의 Sunday~ Saturday까지의 날짜를 출력하는 것입니다. Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday순! ex) 7 27일이 토요일이기 때문에 날짜는 21 22 23 24 25 6 27을 출력합니다. ex) 7월 27일이 월요일이기 때문에 날짜는 26 27 28 29 30 31 1을 출력합니다. WEEKLYCALENDAR 출처 : https://algospot... 더보기
한동아 포스팅을 못한 후 현재 상태..!! 안녕하세요~ 알고라파덕이에요!! 요즘에 세미나를 진행하랴.. 교육봉사를 다녀오냐.. 포스팅을 하지 못했습니다!! (ㅎㅎ..핑계구... 귀찮니즘이...하하) 일주일간 많은 변화가 있었어요!! 함께 보시죠~ 먼저 제가 주력으로 육성하고 있는!! 태을선인!! 마공 퇴마사!! 만렙 헬에서 득템했던 폐왕의 눈물!! 하나믿고 대지의 제압자 9셋을 향하여 달려가고 있습니다. 현재 아무런 장템도 얻지 못하여 퀘스트로 얻은 2개의 셋트만 보유중입니다!! 그리고 돈 번돈으로 얻게 된 이번 해변 패키지의 칭호!! 해변의 화끈한 그녀 플래티넘(명속 강화+6!)을 1100에 사게 되었습니다~! (짝짝짝~~) 지금 주력으로 육성하고 있는 중이구요!! 얼른 대지의제압자 9셋을 맞추고 슈퍼노바 로저리나, 에픽 무기를 노리고 있습니다.. 더보기
[알고스팟/ALGOSPOT] 18. ASYMTILING 이번 문제는 ASYMTILING 라는 문제입니다!! 이 문제는 전의 TILING2의 문제와 굉장히 유사합니다. ASYMTILING(출처 : https://algospot.com/judge/problem/read/ASYMTILING) 문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)ASYMTILING1000ms65536kb1099570 (51%)출제자출처분류JongMan알고리즘 문제 해결 전략보기문제 그림과 같이 2 * n 크기의 직사각형을 2 * 1 크기의 타일로 채우려고 합니다. 타일들은 서로 겹쳐서는 안 되고, 90도로 회전해서 쓸 수 있습니다. 단 이 타일링 방법은 좌우 대칭이어서는 안 됩니다. 위 그림은 2 * 5 크기의 직사각형을 채우는 비대칭 타일링 방법 6가지를 보여줍니다. 다음의 2.. 더보기
[알고스팟/ALGOSPOT] 16. JLIS 알고라파덕~ 이번 문제는 LIS를 2개를 이용하여 푸는 JLIS라는 문제입니다! 이 문제 또한 동적계획법을 이용하여 해결을 하는데요~ 동적 계획법이란 처음 주어진 문제를 더 작은 문제들로 나눈 뒤 각 조각의 답을 계산하고, 이 답들로부터 원래 문제에 대한 답을 계산해 내는 방법입니다. 어떤 수열에서 0개 이상의 숫자를 지운 결과를 원 수열의 부분 수열이라고 부릅니다. 예를 들어 '4 7 6'은 '4 3 7 6 9'의 부분 수열입니다. 중복된 숫자가 없고 오름 차순으로 정렬되어 있는 부분 수열들을 가리켜 증가 부분 수열이라고 부르지요. 예를 들어 '3 6 9'는 앞의 수열의 증가 부분 수열입니다. 두 개의 정수 수열 A 와 B 에서 각각 증가 부분 수열을 얻은 뒤 이들을 크기 순서대로 합친 것을 합친 증가.. 더보기
11. ORIVIRUS 11. ORIVIRUS 소스 코드.#include int a[110][110], data[110], chk[110], chk2[110]; int n; int main() { int testcase, x, y, edge; int i, j, k, cnt; scanf("%d", &testcase); while(testcase >= 1) { --testcase; scanf("%d", &n); for(i=1; i 더보기
12. STARCRAFT #include #include using namespace std; double ave, winper, loseper; double n, m; int main() { long int q; int testcase, i, j, k; double testave; cin >> testcase; while(testcase >= 1) { --testcase; cin >> n >> m; if(m==1) { printf("%d\n", int(n)); continue; } winper = n/100; loseper = 1-winper; ave = 1 + loseper * m; for(i=2; i 더보기