Computer Sciences/Problem Solve(155)
-
[Baekjoon] 1946번: 신입 사원 - Java
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 설명 지원자들을 가장 많이 뽑을 수 있는 선에서 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 낮지 않은 사람들만 필터링해야 한다. 이게 무슨 말인지 필자도 처음 문제를 읽었을 때 이해하지 못했다. 예제 입력을 활용하여 설명하면 다음과 같다. 테스트 케이스 1 서류 심사 등수 면접 심사 등수 A 3 2 B 1 4 C 4 1 D 2 3 E 5 5 A가 합..
2022.05.14 -
[Baekjoon] 1439번: 뒤집기 - Java
https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 설명 문제는 복잡하지 않다. 0 또는 1로 이루어진 문자열이 주어진다. 그리고 연속된 하나 이상의 숫자를 뒤집을 수 있으며 모두 같은 숫자를 만들어야 한다. 이때 뒤집는 최소 횟수를 출력하면 된다. 풀이 방법 잠깐 생각해보면 금방 풀이를 떠올릴 수 있을 것이다. 연속된 숫자를 뒤집어야 하기 때문에 연속된 숫자가 적은 숫자를 뒤집으면 된다. 예를 들어 보자. 10110001이 주어졌다. 연속된..
2022.05.09 -
[Baekjoon] 1026번: 보물 - Java
https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 설명 S = A[0] x B[0] + ... + A[N-1] * B[N-1] 이라는 함수의 결과가 최솟값이 나오도록 하면 해결된다. 풀이 방법 A의 수만 재배열하라고는 했지만 우리는 최솟값만 구하면 된다. 즉 A는 작은 순으로 정렬하고 B는 큰 순으로 정렬한 후에 S 함수에 두 배열을 넘겨주면 된다. 그런데 A와 B를 입력받고 int 배열로 변환하고 다시 정렬하는 과정을 거쳐하 할까?..
2022.05.09 -
[Programmers] 오픈채팅방 - Java
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제 설명 문제의 이해는 어렵지 않지만 간단하게 설명하면 다음과 같다. 방에 접속한 유저들은 uid로 구분되며 각 유저는 닉네임으로 구분된다. 그리고 명령어로는 Enter, Change, Leave가 있으며 Enter라면 입장 메시지가 출력되고 Leave라면 퇴장 메시지가 출력된다. 그리고 Change라면 해당 유저의 닉네임을 변경한다. 문제의 주요 내용은 최종..
2021.12.23 -
[Programmers] 크레인 인형뽑기 게임 - Java
https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 설명 이 문제는 간단한 인형뽑기 게임이다. 크레인으로 인형을 하나씩 뽑고 그 인형을 바구니에 담아놓는다. 그러다 맨 위에 있는 인형과 새로 들어온 인형이 같으면 두 인형은 사라지고 포인트가 2점 쌓인다는 심플한 게임이다. 해결 과정 먼저 바구니부터 생각해보자. 뽑아온 인형이 하나씩 쌓인다... 뭔가 떠오르는 자료구조가 있지 않은가? 바로 스택이다. 스택은 LIFO 구조로 되어있는 자..
2021.12.14 -
[Programmers] 키패드 누르기 - Java
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1단계 문제라서 쉽게 해결될 줄 알았는데 생각보다 애먹었다. 처음에는 키패드 숫자로 계산해서 거리를 찾으려고 했으나 나 실패하였고, 배열로 하려고 잠깐 생각했었지만 복잡해질 것 같았다. 그래서 Position이라는 객체를 만들어서 거리 계산을 해결했다...
2021.12.13