본문 바로가기

알고리즘

[TopCoder 알고리즘] 전체탐색 - 암호 Problem : Cryptography TopCoder Security Agency (TSA)는 새로운 암호화 시스템을 개발했다. 이 시스템은 암호화를 위해 숫자 리스트를 입력받는다. 당신은 TSA의 비밀 정보 수사원이다. 암호화 과정에서 중요한 부분을 구현하는 것이 당신의 임무이다. 당신은 입력 리스트에서 1개의 값을 선택하고 값을 1 증가시킨다. 이때 리스트 내부의 모든 숫자 곱이 가장 커져야 한다. int[] numbers 형태로 숫자 배열이 주어질 때 곱의 최댓값을 리턴하라. 리턴값이 2^62를 넘는 문제는 나오지 않는다. 제약 조건 : capacities : 2-50개의 요소라 있는 배열이며 각 요소의 값은 1-1000이다 리턴값 2^62를 넘지 않는다 예시 : numbers = {1 , 2 .. 더보기
[TopCoder 알고리즘] 전체탐색 - 즐거운 파티 시뮬레이션 문제에서 주어진 과정을 거쳐 나온 결과가 무엇인지 묻는다면, 전체 탐색 유형은 과정을 알려주지 않고 "가장 좋은 결과는 무엇인지" 등을 물어볼 수 있다. 선택 사항이 몇 개가 있고 어떤 것을 선택해야 할지 모르는 상황에서 전체 탐색은 모든 경우를 테스트하는 전략이다. Problem : Interesting Party 화이트씨는 다재다능한 사람이다. 그래서 그는 친구가 많다. 하지만 불행히도 그의 친구들은 누구도 다재다능하지 않다. 그들은 각자 두 개의 관심사만을 가지고 있고, 그 이외의 주제에 대해서는 대화하고 싶어 하지 않는다. 따라서 화이트 씨는 파티를 주최할 때, 모두에게 파티가 흥미롭기 위해서는 누구를 초대해야 하는지 고민이다. 화이트 씨는 파티 경험이 많지는 않지만, 친구들 모두가 공.. 더보기
[TopCoder 알고리즘] 시뮬레이션 - 키위주스 초기 상태와 어떤 작업을 수행할지를 제공하고, 그에 따라 최종 결과가 어떻게 될지 답하는 문제 유형 Problem : KiwiJuiceEasy 타로는 키위 주스를 준비했다. 타로는 0부터 N-1이라 이름을 붙인 N개의 병에 키위 주스를 넣었다. 이때 i번째 병의 용량은 capacities[i] 리터이며 타로가 i번째 병에 넣은 키위 주스의 양을 bottles[i] 리터라고 한다. 타로는 병에 키위주스를 재분배하려고 하며, 0부터 M-1까지 M회 조작한다. i번째의 조작은 타로가 병 fromId[i]부터 병 toId[i]에 키위주스를 넣는 것을 의미한다. 병 fromId[i]가 비어있거나 병 toId[i]가 꽉 차 있는 순간, 타로는 더 이상 키위주스를 넣지 않는다. N개의 요소를 가진 정수 배열 int[.. 더보기