NxN 크기의 정사각형 공간 위에 서 있다고 가정하자 가장 왼쪽 위 좌표 (1,1)에서 시작을 해서 LRUD중 하나의 문자를 입력해서 해당 문자를 따라서 이동하는데(상하좌우) 최종적으로 이동하는 곳을 출력하기 n = int(input()) x,y = 1,1 plans = input().split() #L R U D에 따른 이동 방향 dx = [...
정렬된 배열에서 특정 수의 개수 구하기 이진팀색
리스트나 배열이 정렬되어 있다는 가정하에 가장 빠르게 원소를 찾는 방법은 이진탐색을 이용하는 것입니다. 그리고 이런 이진탐색은 코딩테스트에서 출제자가 의도하지 않았더라도 제일 효과적으로 문제를 해결할 수도 있으니 이진 탐색 라이브러리인 bisect 모듈의 사용 방법은 꼭 기억을 합시다. 예를 들어 수열 [1,1,2,2,2,2,3]이 있을 때 x = ...
고정점 찾기 이진팀색
고정점(Fixed Point)란 수열의 원소 중에서 그 값이 인덱스와 동일한 원소를 의미 합니다. 예를 들어서 [-15,-4,2,8,13]이 있을때 a[2]=2이므로 고정점은 2가 됩니다. 모든 원소는 오름차순으로 정렬되어 있으며 고정점이 없을 경우 -1을 반환합니다. 단 시간복잡도는 로그로 설계를 해야 합니다. 늘 그렇듯이 가장 ...
1이 될 때까지 그리드
출처 : 2018 E 기업 알고리즘 대회 문제 어떤 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려 한다. 두번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다.수행횟수는? n, k = map(int, input().split()) count = 0 result =...
큰수의 법칙 문제 1 그리드
기출 : 2019 국가 교육기관 코딩테스 문제 숫자의 개수(n), 더할횟수(m), 최대 반복횟수(k) 를 입력을 받고 값을 출력하기 예를 들어서 5,8,3이 들어오게 되고 배열이 2,3,4,5,6이라고 가정하면 6+6+6+5+6+6+6+5 총 8번을 더해서 가장 큰 수를 구하는데 3번이상 연속으로 더하면 안되는 조건 n, m, k = map(...
작은 숫자 카드 꺼내기 그리드
기출 : 2019 국가 교육기관 코딩 테스트 숫자카드게임 숫자가 쓰인 카드들이 NxM 형태로 놓여있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 선택된 행에 포함된 카드들중 가장 숫자가 낮은 카드를 뽑아야 한다. 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가...
Pandas 데이터프레임 중간 생략없이 전체 보는 방법
판다스에서 데이터프레임이나 시리즈를 볼때 데이터가 너무 많으면 알아서? 중간을 생략해버립니다. 그런데 사실 하나하나 볼때가 있는데 너무 불편하지요 물론 다른 방법으로 확인이 가능하지만 일단은 귀찮습니다. 그냥 이대로 보는 방법은 옵션을 별도로 설정해주어야 합니다. import pandas as pd # 최대 줄 수 설정 pd.set_optio...
Pandas로 이상치 처리하기 quantile 사용
이번에는 quantile를 가지고 이상치를 처리해보도록 하겠습니다. 백분위수로 보통 IQR1.5-Q1 ~ IQR1.5+Q3을 기준으로 하고 이를 넘어가면 이상치로 판단합니다. 보다 큰 값 또는 작은 값들을 대체하거나 빼버리는 식입니다. 작업 1유형의 예시를 가지고 한번 해보겠습니다. import numpy as np import pandas as p...