sort 5

[정렬] 이코테 (파이썬) 실패율 풀이

[문제] 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌습니다. 그녀가 만든 프렌즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감했습니다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였습니다. 이 문제를 어떻게 할까 고민한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했습니다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았습니다. 오렐리를 위해 실패율을 구하는 코드를 완성하세요. 실패율은 다음과 같이 정의합니다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어의 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 sta..

[정렬] 이코테 (파이썬) 안테나 풀이

[문제] 일직선상의 마을에 여러 채의 집이 위치해 있습니다. 이 중에서 특저 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했습니다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총합이 최소가 되도록 설치하려고 합니다. 이때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능합니다. 집들의 위치 값이 주어질 때, 안테나를 설치할 위치를 선택하는 프로그램을 작성하세요. 예를 들어 N = 4이고, 각 위치가 1, 5, 7, 9일 때를 가정하겠습니다. 이 경우 5의 위치에 설치했을 때, 안테나로부터 모든 집까지의 거리의 총합이 (4 + 0 + 2 + 4) = 10으로, 최소가 됩니다. [입력 조건] 1. 첫째 줄에 집의 수 N이 자연수로 주어집니..

정렬 알고리즘

[정렬 알고리즘 이란?] 정렬(Sorting이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것이다. 정렬 알고리즘의 종류는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 등이 있다. 7 5 1 2 4 6 3 위와 같이 각각의 수가 존재할 때 기본적으로 오름차순으로 수를 정렬한다면 아래와 같다. 1 2 3 4 5 6 7 내림차순 또한 마찬가지로 정렬한다면 아래와 같다. 7 6 5 4 3 2 1 이와 같이 우리는 특정한 수들이 존재할 때 정렬을 금방 수행할 수 있지만, 컴퓨터는 인간과 다르게 데이터의 규칙성을 직관적으로 알 수 없으며, 어떻게 정렬을 수행할지에 대한 과정을 소스코드로 작성하여 구체적으로 명시해야 한다. [선택 정렬] 선택 정렬은 현재의 범위에서 가장 작은 데이터를 선택하여 맨 앞에 있는 ..

[파이썬] 리스트 기본 메서드

리스트에서 사용할 수 있는 기본적인 메서드들은 다음과 같다. 메서드 사용 방식 설명 시간 복잡도 append( ) 변수명.append( ) 리스트에 원소를 하나 삽입한다. O(1) sort( ) 변수명.sort( ) 오름차순으로 정렬 O(NlogN) 변수명.sort(reverse = True) 내림차순으로 정렬 reverse( ) 변수명.reverse( ) 리스트의 원소 순서를 뒤집는다. O(N) remove( ) 변수명.remove(특정 값) 특정 값을 갖는 원소를 제거한다. O(N) insert( ) 변수명.insert(삽입할 위치 인덱스, 삽입할 값) 특정한 인덱스에 원소를 삽입한다. O(N) count( ) 변수명.count(특정 값) 리스트에서 특정 값을 가지는 데이터의 개수 O(N) 여기서 r..