문제 풀이
-
[Baekjoon Online Judge] 1080번: 행렬문제 풀이/Baekjoon Online Judge 2021. 1. 1. 18:09
[Baekjoon Online Judge] 1080번: 행렬 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 행렬B를 탐색하면서 행렬A와 비교한 값이 다를 때 행렬A를 변환하는 연산(어떤 3 x 3 크기의 부분 행렬에 있는 모든 원소를 뒤집는 것)의 최솟값을 구하는 문제이다. import java.io.*; public class Baekjoon1080 { public static BufferedReader bufferedReader; public static BufferedWriter bufferedWriter; publ..
-
[2020 KAKAO BLIND RECRUITMENT] 자물쇠와 열쇠문제 풀이/KAKAO BLIND RECRUITMENT 2021. 1. 1. 15:35
[2020 KAKAO BLIND RECRUITMENT] 괄호 반환자물쇠와 열쇠 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr key 행렬을 돌리고 옮겨가며 모든 경우의 수를 시도해보는 문제이다. 우선 특정 행렬을 돌리는 메소드를 구현했다. public class LockAndKey_1 { static int get(int[][] a, int rotation, int row, int col) { // 현재 위치를 넣고, 돌렸을 때 값이 들어 있는 위치의 값을 반환하는 메소드 if (rotation == 90) { int temp = row; row = a.l..
-
[2020 KAKAO BLIND RECRUITMENT] 괄호 반환문제 풀이/KAKAO BLIND RECRUITMENT 2020. 12. 29. 21:58
[2020 KAKAO BLIND RECRUITMENT] 괄호 반환 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴 programmers.co.kr 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라 고 부른다. 그리고 여기에 '('와 ')'의 괄호의 짝도 모두 맞을 경우에는 이를 올바른 괄호 문자열이라고 부른다. 예를 들어, "(()))("와 같은 문자열은 균형잡힌 괄호 문자열 이지만 올바른 괄호 문자열은 아니다. 반면에 "(())()"와 같은 문자열은 균..
-
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축문제 풀이/KAKAO BLIND RECRUITMENT 2020. 12. 29. 17:15
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문자열을 압축하여 길이를 출력하는 문제이다. 눈으로 보기에는 간단해 보였지만 문자열 조작에 익숙하지 않아 생각보다 난잡한 코드가 되었다. 최대한 혼자 힘으로 풀기 위해 노력했다. 제출까지 완료하였지만 코드가 난잡하고 읽기도 힘든 부분이 많다. 문자열을 생성하고 더하는 부분에서 Stirng 클래스를 사용하여 문자열을 조합했기 때문에 메모리 사용이 많다. public class StringCo..
-
[Baekjoon Online Judge] 1339번: 단어 수학 - 풀이 추가 예정문제 풀이/Baekjoon Online Judge 2020. 12. 27. 20:30
1339번: 단어 수학 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net HashMap을 활용하여 풀이하였다. map의 key 값으로 알파벳을 넣었고, value는 해당 key 값의 자릿수 가중치이다. 예를 들면, 입력이 2 GCF ACDEB 라고 가정하자. 그렇게 되면 GCF, ACDEB는 각각 key 값으로 들어가게되고, GCF에서 G는 100의 자리 이기 때문에 value로 100이란 값을 가지게 된다. C는 10, F는 1이된다. ACDEB를 보면 A는 10000, C는 1000, D는 100, E..
-
[Baekjoon Online Judge] 1946번: 신입 사원문제 풀이/Baekjoon Online Judge 2020. 12. 27. 20:18
1946번: 신입 사원 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 처음 이 문제를 접했을 때 이해하는데 조금 시간이 걸렸다. 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선별한다는 원칙이 잘 이해가 되지 않았다. 예시를 들어보면, 서류심사 순위 면접시험 순위 3 2 1 4 4 1 2 3 5 5 각각의 지원자의 서류심사 성적 순위와 면접시험 성적 순위가 위 표와 같은 경우, 서류심사를 기준으로 우선 정렬하였다. 서류심사 순위 면접시험 순위 1 4 2 3 3 2 4 1 5 5 정렬..
-
[Baekjoon Online Judge] 2217번: 로프문제 풀이/Baekjoon Online Judge 2020. 12. 26. 14:04
2217번: 로프 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net n개의 로프를 활용해서 가장 무거운 중량을 구하는 문제이다. 여기서 고려해야 하는 요구사항은 k개의 로프를 사용하여 중량 w인 물체를 들어올리면, 각각의 로프는 모두 고르게 w/k 만큼 중량이 걸리게 된다. 각각의 로프는 자신이 버틸 수 있는 중량 이상을 버틸 수 없다. 마지막으로 로프는 전부 사용하지 않아도 된다. 로프를 전부 사용하지 않아도 되기 때문에 로프를 중량 내림차순으로 정렬시킨다. 버틸 수 있는 무게가 큰 순서부터 로프를 ..
-
[Baekjoon Online Judge] 5585번: 거스름돈문제 풀이/Baekjoon Online Judge 2020. 12. 26. 13:52
5585번: 거스름돈 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 물건 금액을 입력 받아 거스름돈의 동전 개수를 반환해주는 간단한 문제였다. 소비자가 내는 지폐를 1000으로 한정하였기 때문에 1000 - money로 간단하게 거스름 돈을 계산하고, 가장 큰 동전 값 부터 나누어 동전의 개수를 계산하였다. import java.io.*; public class Baekjoon5585 { public static void main(String[] args) throws IOExcepti..