알고리즘

문제 링크 www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 요약 '('와 ')'로 이루어진 문자열로 레이저와 쇠막대기의 배치 정보를 준다면 쇠막대기 조각의 총 개수를 구하라. 문제 풀이 문제 속의 그림에 다른 정보들을 추가해보겠습니다. 쇠막대기에 적혀진 숫자들은 잘려진 조각을 세기 위한 숫자입니다. 그 위쪽 괄호와 근접하게 적힌 숫자들은 무엇일까요?? 괄호가 열린 만큼 쇠막대기들이 겹쳐서 쌓여있게 됩니다. 즉 몇겹이 쌓아 올려져 있는지 적어놨습니다. 레이저를 만나..
*포스팅 스타일 변경 친구 : 문제 푼 사람들 다들 천재인가봐 어떻게 저런 접근법을 바로 생각하지?? 난 못하겠던데.. 너무 어려워ㅠㅠ 음.. 친구에게 도움이 될지는 모르겠지만 한 문제를 풀때도 여러 시행착오를 겪은 뒤에 푸는 사람이 있다는 것을 알려주고 싶었습니다. 따라서 문제를 풀때 했던 생각들을 모조리 적어볼까 합니다. 의식의 흐름을 적는거니까 난잡해질 가능성이 있습니다. 문제 링크 www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 설명 'N개..
문제 링크 www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 설명 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 요약을 하자면 저 한 문장으로 대체 가능합니다. 또한 성적이 일반 점수가 아니라 순위이기 때문에 낮을수록 좋습니다. 일반적으로 생각하는 이중 포문으로 푼다면 시간 초과가 뜨기 때문에 '그리디' 스럽게 풀어내야 합니다. 접근 방법 ..
https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수 www.acmicpc.net 2 이상의 짝수는 2개의 소수를 더한 값과 같다는 내용입니다. 그렇다면 어떤 소수의 합으로 표현이 가능한가? 만약에 여러 경우가 존재한다면 그중에서 소수끼리의 차이가 가장 적은 것으로 출력하시오. 접근 단계 n까지의 소수를 구한다 가능한 소수 합의 조합을 구한다. 여러개라면 이 중에서 차이가 가장 적은 것을 출력한다. 시간 초과 난 소스 코드 1 2 3 4 5 6 7 8 9 1..
https://www.acmicpc.net/problem/10610 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶� www.acmicpc.net 문제 요약 입력받은 값으로 만들어낼 수 있는 수가 30의 배수라면 그중 가장 큰 값을, 배수가 아니라면 -1을 출력하라. 접근법 문제 분류를 보면 정수론이라고 되어있습니다. 위키 피디아에 따르면 '정수론(整數論, 영어: number theory) 또는 수론(數論)은 수학의 한 분야로, 각종 수의 성질을 대상으로 한다' 라는 군요. 30의 특성을 파악해봅시다. 30은 일단 뒤에 0이 없으면 안 되..
https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 www.acmicpc.net 문제 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어 올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의..
https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr 문제 설명 n명의 학생이 있습니다. lost에는 체육복을 잃어버린 학생의 번호가 있고, reserve에는 여분의 체육복을 가져온 학생의 번호가 있습니다. 해당 번호는 체격 순으로 부여한 번호이므로 +1 혹은 -1 번호의 학생에게만 체육복을 빌려줄 수 있습니다. 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성해주세요. 유의..
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 문제 요약 마라톤 참가자 문자열 리스트 participarticipant 가 주어지고 완주한 선수 문자열 리스트인 completion이 주어집니다. 이 두 데이터를 이용해 완주하지 못한 선수를 return 하면 되는 문제입니다. 첫 번째 아이디어 문자열 리스트 중복 제거 이런 식으로 떠올렸습니다. 가장 먼저 떠올린 방법은 set을 이용한 ..
https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정� www.acmicpc.net 문제가 상당히 깁니다만 대부분 Hashing에 대한 개념을 짚고 있습니다. 요약 가장 대표적인 방법은 항의 번호에 해당하는 만큼 특정한 숫자를 거듭제곱해서 곱해준 다음 더하는 것이 있다. 이를 수식으로 표현하면 아래와 같다. 보통 r과 M은 서로소인 숫자로 정하는 것이 일반적이다. 우리가 직접 정하라고 하면 힘들 테니까 r의 값은 26보다 큰 소수인 31로 하고 M의 값은 1234567891(..
취직을 위한 코딩테스트를 준비하면서 기본 문제를 못 푸는 친구가 있어서 준비해봤습니다. 얼마나 효율적으로 푸느냐는 후에 생각해도 괜찮습니다. 일단은 풀어나 봅시다!!의 느낌으로 쉬운 문제부터 하나씩 포스팅하려고 합니다. https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 � www.acmicpc.net BOJ의 1152번에 대한 링크입니다. 문제 요약 문자열을 입력받고 총 몇 단어로 이루어져 있는가~ 를 출력하는 문제입니다. 접근법 제일 쉽게 떠올릴 수 있는 방법은 문자열..
moongomi
'알고리즘' 카테고리의 글 목록 (2 Page)