본문 바로가기

Algorithm/[이코테] 알고리즘 유형별 기출문제

(18)
[이코테] DFS/BFS 문제 - 연구소 난이도 : ●●○ | 풀이 시간 : 40분 | 시간 제한 : 2초 | 메모리 제한 : 512MB | 기출 : 삼성전자 SW 역량테스트 문제 바이러스의 확산을 막기 위해 연구소에 벽을 세우려 한다. 연구소는 N x M인 직사각형이다. 연구소는 빈칸, 벽으로 이루어져 있다. 일부 칸엔 바이러스가 존재하고 이 바이러스는 상하좌우로 인접한 빈칸으로 확산될 수 있다. 새로 세울 수 있는 벽의 개수는 3개이고 꼭 3개를 세워야 한다. 연구소의 지도가 주어졌을 때 얻을 수 있는 안전 영역 크기의 최댓값을 구하라. 입력조건 첫째 줄에 N, M이 주어진다. (3
[이코테] DFS/BFS 문제 - 특정 거리의 도시 찾기 python 난이도 : ●◐○ | 풀이 시간 : 30분 | 시간 제한 : 2초 | 메모리 제한 : 128MB | 기출 : 핵심 유형 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 문제 어떤 나라에 1~N번까지의 도시와 M개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다. 특정한 도시 X로부터 출발해 도달할 수 있는 모든 도시 중 최단 거리가 K인 도시들의 번호를 출력하는 프로..
[이코테] 구현 - 문자열 압축 python 난이도 : ●◐○ | 풀이 시간 : 30분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : 2020 카카오 신입 공채 문제 어피치는 문자열을 압축하는 방법에 대해 공부하고 있다. 그 방법은 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 것이다. 어피치는 문자열을 1개 이상의 단위로 잘라 압축해 보다 짧은 문자열로 표현할 수 있는 방법을 찾아보려고 한다. 예를 들어 "abcabcdede"인 경우 문자를 2개 단위로 잘라 압축하면 "abcabc2de"가 되지만 3개 단위로 잘라 압축하면 "2abcdede"가 되어 더 짧은 압축 방법이 된다. 압축할 문자열 s가 매개변수로 주어질 때 1개 이상의 단위로 문자열을 잘라 ..
[이코테] 구현 - 문자열 재정렬 python 난이도 : ●○○ | 풀이 시간 : 20분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : Facebook 인터뷰 문제 알파벳 대문자와 숫자(0~9)로만 이루어진 문자열이 주어진다. 이때 모든 알파벳을 오름차순으로 정렬해 출력한 뒤에 모든 숫자를 더한 값을 출력한다. 입력조건 첫째 줄에 하나의 문자열 S가 주어진다. (1
[이코테] 구현 - 럭키 스트레이트 python 난이도 : ●○○ | 풀이 시간 : 20분 | 시간 제한 : 1초 | 메모리 제한 : 256MB | 기출 : 핵심 유형 문제 게임의 아웃복서 캐릭터는 필살기인 '럭키 스트레이트'를 쓸 수 있다. 이 기술은 특정 조건을 만족할 때만 사용할 수 있다. 특정 조건이란 현재 캐릭터의 점수가 N일 때 자릿수를 기준으로 점수 N을 반으로 나누어 왼쪽 부분 각 자릿수의 합과 오른쪽 부분 각 자릿수의 합이 같을 때를 말한다. 현재 점수 N이 주어지면 럭키 스트레이트를 사용할 수 있는지 아닌지를 알려주는 프로그램을 작성하라. 입력조건 첫째 줄에 점수 N이 정수로 주어진다. (10
[이코테] 그리디 - 볼링공 고르기 python 난이도 : ●○○ | 풀이 시간 : 30분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : 2019 SW 마에스트로 입력 테스트 문제 A, B 두 사람이 볼링을 치고 있다. 볼링공은 총 N개가 있고 각 공의 무게는 1부터 M까지의 자연수이다. 같은 무게의 공이 여러 개 있을 수 있지만 서로 다른 공으로 간주한다. 공의 번호는 1번부터 순서대로 부여된다. 두 사람이 무게가 서로 다른 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하라. 입력조건 첫째 줄에 볼링공의 개수 N, 공의 최대 무게 M이 공백으로 구분되어 주어진다. (1
[이코테] 그리디 - 만들 수 없는 금액 python 난이도 : ●○○ | 풀이 시간 : 30분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : K 대회 기출 문제 동빈이는 N개의 동전을 가지고 있다. N개의 동전을 이용해 만들 수 없는 양의 정수 금액 중 최소값을 구하는 프로그램을 작성하라. 입력조건 첫째 줄에 동전의 개수 N이 주어진다.(1 1원 만들 수 있음 3. coins[1]인 1원 추가 -> 1, 2원 만들 수 있음 4. coins[2]인 2원 추가 -> 1, 2, 3, 4원 만들 수 있음 5. coins[3]인 4원 추가 -> 1, 2, 3, 4, 5, 6, 7원 만들 수 있음 6. coins[4]인 9원 추가 -> 1, 2, 3, 4, 5, 6, 7원 / 9, 10, 11, 12, 13, 14, 15, 16원 만들 수 있음 ..
[이코테] 그리디 - 문자열 뒤집기 python 난이도 : ●○○ | 풀이 시간 : 20분 | 메모리 제한 : 128MB | 기출 : 핵심 유형 문제 다솜이는 0과 1로만 이루어진 문자열 S를 갖고 있다. 다솜이는 이 문자열 S가 하나의 숫자로 구성되게 하고 싶다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 문자열 S가 주어졌을 때 다솜이가 해야 하는 행동의 최소 횟수를 출력하라. 입력조건 첫째 줄에 0과 1로만 이루어진 문자열 S가 주어진다. S의 길이는 100만보다 작다. 출력조건 첫째 줄에 다솜이가 해야 하는 행동의 최소 횟수를 출력한다. 입력예시 0001100 출력예시 1 아이디어 모두 0으로 바꾸는 데에 필요한 횟수(cnt_0)와 1로 바꾸는 데에 필요한 횟수(cnt_1) 중 작은 것을 구하면 된..