본문 바로가기

전체 글

(261)
[이코테] 구현 - 문자열 재정렬 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) 중 작은 것을 구하면 된..
[이코테] 그리디 - 곱하기 혹은 더하기 python 난이도 ●○○ | 풀이 시간 : 30분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : Facebook 인터뷰 문제 각 자리가 숫자(0~9)로만 이루어진 문자열 S가 주어진다. 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 만들 수 있는 가장 큰 수를 구하여라. 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정한다. 입력조건 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어진다.(1
[이코테] 그리디 - 모험가 길드 python 난이도 : ●○○ | 풀이 시간 : 30분 | 시간 제한 : 1초 | 메모리 제한 : 128MB | 기출 : 핵심 유형 문제 한 마을에 모험가가 N명 있다. 모험가 길드에서는 모험가 N명의 공포도를 측정했는데, 공포도가 X인 모험가는 반드시 X명 이상으로 구성된 그룹에 참여해야 여행을 떠날 수 있다. 최대 몇 개의 모험가 그룹을 만들 수 있는지 구하라. 입력 조건 첫째 줄에 모험가의 수 N이 주어진다.(1
[최단 경로 알고리즘] Dijkstra, Floyd-Warshall algorithm 1. Dikstra algorithm 특정한 노드에서 출발해 다른 모든 노드로 가는 최단 경로를 계산함 음의 간선이 없을 때 정상적으로 동작함 매 상황에서 가장 비용이 적은 노드를 선택하므로 그리디 알고리즘으로 분류됨 1.1 Dijkstra algorithm 동작 과정 출발 노드를 설정함 최단 거리 테이블을 초기화함 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드를 선택함 해당 노드를 거쳐 다른 노드로 가는 비용을 계산해 최단 거리 테이블을 갱신함 위 과정에서 3번과 4번을 반복함 1.2 Dijkstra algorithm 특징 그리디 알고리즘에 포함됨 매 상황에서 방문하지 않은 가장 비용이 적은 노드를 선택하기 때문임 한 번 처리된 노드의 최단 거리는 고정되어 더 이상 바뀌지 않음 한 단계당 하나의 ..