알고리즘
-
문제 풀이: https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 제곱이라고 Math.pow() 쓰면 오버플로난다 별다른건 없고 미리 배열에다가 제곱수를 구해놓고 계산한다
[BOJ/백준 - 15829] Hashing문제 풀이: https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 제곱이라고 Math.pow() 쓰면 오버플로난다 별다른건 없고 미리 배열에다가 제곱수를 구해놓고 계산한다
2022.01.11 -
문제 출처: https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 숫자를 오름차순으로 정렬한다 음수, 0, 1, 양수 부분을 나눠서 큐에 저장한다. 양수부분 큐는 poll을 했을때 제일 큰 값이 올 수 있도록 셋팅해준다 음수부분 큐를 하나씩 빼면서 2개 빠질때마다 곱해서 답에 더해준다 음수부분 큐가 비었을 경우 음수 1개가 남아 있다면 0부분 큐를 확인해 0이 존재하면 그냥 넘어가고 0이 존재하지 않으면 나머지 음수1개를 답에 더해준다 양수부분 큐..
[BOJ/백준 - 1744] 수 묶기문제 출처: https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 숫자를 오름차순으로 정렬한다 음수, 0, 1, 양수 부분을 나눠서 큐에 저장한다. 양수부분 큐는 poll을 했을때 제일 큰 값이 올 수 있도록 셋팅해준다 음수부분 큐를 하나씩 빼면서 2개 빠질때마다 곱해서 답에 더해준다 음수부분 큐가 비었을 경우 음수 1개가 남아 있다면 0부분 큐를 확인해 0이 존재하면 그냥 넘어가고 0이 존재하지 않으면 나머지 음수1개를 답에 더해준다 양수부분 큐..
2022.01.11 -
문제 출처:https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 항상 아이디어 생각하는게 힘들고 오래걸리는거 같다... 1. 입력부분에서 마감시간, 과제점수를 입력받는데 입력받으면서 제일 큰 마감시간을 기억해두었다가 해당 값을 길이로 하는 결과 계산용 배열을 만든다 2. 입력받은 마감시간, 과제점수을 과제점수를 기준으로 내림차순 정렬해준다 3. 아이디어는 - '점수가 높은 애들은 무조건 하고싶은데 어떻게 될지 모르기때문에 될 수 있으면 마감시간에 가깝게 처리한다' 4. 3을 바탕으로 구현 ㄱㄱ..
[BOJ/백준 - 13904] 과제문제 출처:https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 항상 아이디어 생각하는게 힘들고 오래걸리는거 같다... 1. 입력부분에서 마감시간, 과제점수를 입력받는데 입력받으면서 제일 큰 마감시간을 기억해두었다가 해당 값을 길이로 하는 결과 계산용 배열을 만든다 2. 입력받은 마감시간, 과제점수을 과제점수를 기준으로 내림차순 정렬해준다 3. 아이디어는 - '점수가 높은 애들은 무조건 하고싶은데 어떻게 될지 모르기때문에 될 수 있으면 마감시간에 가깝게 처리한다' 4. 3을 바탕으로 구현 ㄱㄱ..
2022.01.11 -
문제 출처:https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 해당 입력 각각 알파벳을 현재 몇번째 자리에 몇번 쓰였는지 계산한다 예를 들어 2번째 테스트케이스인 2 GCF ACDEB 10000 1 1010 100 10 1 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 형태로 계산한 후 정렬, 제일 큰거부터 9 -> 0 으로 곱하면서 더해줌
[BOJ/백준 - 1339] 단어 수학문제 출처:https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 해당 입력 각각 알파벳을 현재 몇번째 자리에 몇번 쓰였는지 계산한다 예를 들어 2번째 테스트케이스인 2 GCF ACDEB 10000 1 1010 100 10 1 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 형태로 계산한 후 정렬, 제일 큰거부터 9 -> 0 으로 곱하면서 더해줌
2022.01.10 -
문제 출처:https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 나는 앞의 점수를 오름차순 정렬 후 맨 앞을 기준 데이터로 저장했다 다음 원소를 비교하면서 기준 데이터와 뒤 점수를 비교해서 (앞의 점수는 정렬이 되었기 때문에 비교하지 않는다) 기준 데이터가 더 작을 경우 temp값을 올려주고 기준 데이터가 더 클 경우 현재 확인중인 원소를 기준데이터로 옮겨준다 그리고 해당 문단의 첫번째로 가서 반복한다 속도가 매우 느리게 통과했..
[BOJ/백준 - 1946] 신입 사원문제 출처:https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 나는 앞의 점수를 오름차순 정렬 후 맨 앞을 기준 데이터로 저장했다 다음 원소를 비교하면서 기준 데이터와 뒤 점수를 비교해서 (앞의 점수는 정렬이 되었기 때문에 비교하지 않는다) 기준 데이터가 더 작을 경우 temp값을 올려주고 기준 데이터가 더 클 경우 현재 확인중인 원소를 기준데이터로 옮겨준다 그리고 해당 문단의 첫번째로 가서 반복한다 속도가 매우 느리게 통과했..
2022.01.10 -
문제 출처: https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 입력 받고 회의 종료 시간을 기준으로 한 오름차순 정렬 + 회의 종료 시간이 같을 경우 시작시간을 오름차순 정렬 문제 입력 조건에 정확히 시작시간 종료시간 에 대한 입력은 없는거 같다 정렬 후 종료 시간과 다음 데이터의 시작시간을 비교하면서 가능한 회의를 최대한 늘려간다
[BOJ/백준 - 1931] 회의실 배정문제 출처: https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 입력 받고 회의 종료 시간을 기준으로 한 오름차순 정렬 + 회의 종료 시간이 같을 경우 시작시간을 오름차순 정렬 문제 입력 조건에 정확히 시작시간 종료시간 에 대한 입력은 없는거 같다 정렬 후 종료 시간과 다음 데이터의 시작시간을 비교하면서 가능한 회의를 최대한 늘려간다
2022.01.09