greedy 5

이것이 코딩테스트다 3 문자열 뒤집기

문제 링크 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net Test Case 문제 풀이 0에서1 1에서0 으로 전환되는 횟수를 카운트 한 뒤 그 횟수를 2로 나눈 값이 답이 된다. 문제를 알고 풀었다기보다 입력값을 여러 개를 넣다보니 나오는 값에서 답을 도출해낼 수 있었다. Source Code import sys input = sys.stdin.readline data = input().rstrip() ans = 1 for i in range..

Develop/algorithm 2021.12.08

이것이 코딩테스트다 2 곱하기 혹은 더하기

문제 링크 각 자리가 숫자 0부터 9로 이루어진 문자열 S가 주어졌을 때, 숫자 사이에 'X' 혹은 '+' 연산을 넣어 만들어질 수 있는 가장 큰 수를 구하시오. Test Case 입력 02984 출력 576 입력 567 출력 210 문제 풀이 0이나 1일때는 더하고 아니면 곱하기를 하면서 예외처리 해주면 끝 Source Code import sys input = sys.stdin.readline #ValueError: invalid literal for int() with base 10: '\n' data = input().rstrip() ans = int(data[0]) length = len(data) for i in range(1,length): if ans

Develop/algorithm 2021.12.08

프로그래머스 무지의 먹방 라이브 (Python)

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr Test Case 문제 풀이 처음에 그냥 무지성으로 반복문 돌려가면서 음식 하나씩 먹다가 정답을 구하는식으로 풀었다가 효율성에서 걸렸다. 이코테 책에서 난이도 1이라고 하길래 쉽게 풀리나 했는데 역시나 틀렸다. 문제풀이는 우선순위큐를 사용해서 정렬 한 뒤 각 음식마다 남은 양을 하나씩 먹어치우는게 아니라 한 cycle씩 먹어서 최대한 빨리 답을 도출하는 것이다. 여기서 말하는 cycle 은 while문의 조건인데, 남은 음식들을 하나씩 다 먹는 것, 그러니까 첫번째 음식 부터 마지막 음식까지 먹게되는 시간을 의미하고 그 c..

Develop/algorithm 2021.11.24

이것이 코딩테스트다 1 모험가 길드

문제 링크 모험가 N명이 있다. 각 모험가를 대상으로 공포도를 측정했다. 공포도가 X인 모험가는 반드시 X명 이상으로 구성해야 여행을 떠날 수 있을 때, 최대 몇개의 모험가 그룹을 만들 수 있는지를 구하시오 N = 5, 공포도 = 2 3 1 2 2 일 때, 최대 그룹수는 2 그룹이다. Test Case 입력 5 2 3 1 2 2 출력 2 문제 풀이 알고리즘 재시작. 그리디부터 다시 시작해보련다. 한 세달밖에 안지났는데도 꽤 많이 까먹어서 당황스럽다. 스터디로 시작하는거니 이번에는 꼭 완주하기. 문제는 별다를건 없고, 조건문, 반복문 잘 써서 머리굴려서 풀면 된다. Source Code import sys input = sys.stdin.readline n = int(input()) data = list(..

Develop/algorithm 2021.11.22

이것이 코딩테스트다 전보 (Python)

문제 링크 어떤 나라에는 N개의 도시가 있다. 그리고 각 도시는 보내고자 하는 메시지가 있는 경우, 다른 도시로 전보를 보내서 다른 도시로 해당 메시지를 전송할 수 있다. 하지만 X라는 도시에서 Y라는 도시로 전보를 보내고자 한다면, 도시 X에서 Y로 향하는 통로가 설치되어 있어야 한다. 예를 들어 X에서 Y로 향하는 통로는 있지만 Y 에서 X로 향하는 통로가 없다면 Y는 X로 메시지를 보낼 수 없다. 또한 통로를 거쳐 메시지를 보낼 때는 일정 시간이 소요된다. 어느 날 C라는 도시에서 위급 상황이 발생했다. 그래서 최대한 많은 도시로 메시지를 보내고자 한다 메시지는 도시 C에서 출발하여 각 도시 사이에 설치된 통로를 거쳐, 최대한 많이 퍼져나갈 것이다. 각 도시의 번호와 통로가 설치되어 있는 정보가 주..

Develop/algorithm 2021.07.23