1.선택 정렬(Insertion Sort) 1.선택 정렬이란? 배열에서 가장 작은 원소를 찾아 첫번째 원소와 교환하고, 두번째 작은 원소를 찾아 두번째 원소와 교환하고...이 방식이 끝까지 반복되는 제자리 정렬방식이다. 2.성능 특징 위의 그림처럼 배열 [None,3
프로그래머스 코딩테스트 연습문제 요격시스템이다.겹치는 부분이 최대가 되도록 요격을 해야하는데 눈으로 보기엔 딱 나와도 어떻게 할지는 약간 멈칫되는 부분일 수 있다.미사일 a와 미사일 b가 겹친다는 기준은 미사일 b의 시작이 미사일 a의 끝보다 앞에서 시작한다는 뜻이다.
LV2 연습문제를 풀어보았다.https://school.programmers.co.kr/learn/courses/30/lessons/176962문제의 핵심조건은 1\. 다음과제 시작시간까지 현재과제가 미완료되면 미루고 다음과제를 시작한다.2\. 다음과제 시작시
간단하게 말하자면, R지점에서 시작해서 G지점으로 가는 방향전환 횟수를 세는 문제이다.흔한 유형이지만 D라는 장애물이 나오기 전까지 멈추지 않고 이동하는 것이 특징으로, 문제를 잘 읽지 않으면 헤맨다.(나도 알고싶지 않았다)1.R에서 출발했을 때, 방향 전환을 할 수
프로그래머스에서 bfs문제를 더 풀어보고 싶어서 '미로탈출'(https://school.programmers.co.kr/learn/courses/30/lessons/159993!\[](https://velog.velcdn.com/images/yongi
숫자로 구성된 문자열을 주어진 칸수에 맞게 출력하면 되는 문제이다.논리라고 할 것도 없이 구현문제이다...라고 생각했지만 그래도 나름의 이론은 필요했다. 그 전에 숫자별로 하나씩 다 그리는 무뇌 노가다를 해봤는데 좋지 않았다숫자의 모양을 디지털계기판에 나타낼 때 주로
해를 찾는 도중 해가 아니어서 막히면, 돌아가서 다시 해를 찾아가는 기법이다. 브루트포스로 가능할 것 같은데 경우의 수가 많아 시간초과가 날 것 같다면 백트래킹 확률이 높다. 최적화 문제와 결정 문제를 풀때 유용하다. '막히면 다시 돌아간다'라는 말이 처음엔 와닿지 않
백준 부분수열 문제는 정말 많은데 대강 접근방법은 2가지인 것 같다.동적 프로그래밍(Dynamic Programming)이진탐색두 개다 같은 문제이다. 왜 그런지 모르겠는데 그냥 2개 풀어서 포인트 챙기자완전탐색으로 '50보다 작은 숫자는 10,20,30이니까 최장 증
요즘 코테에는 그리디와 구현문제가 정말 많다.특히 뭔가가 많은 순서대로, 적은 순서대로 우선순위를 세워서 접근해야 하는 문제가 많다.특히 최근 heapq가 유용한 문제들을 많이 접한 것 같아서 각 잡고 쭉 풀면 감을 살릴 수 있도록 정리해보았다.주어지는 강의의 시작과
Longest Common Substring이다.문자열 FERRARI와 FERRNANDO가 있다면 두 문자열의 LCS는 FERR가 된다.두 개의 문자열a,b를 한 글자씩 비교해가며 값이 같을 경우 2차원배열의 LCSi값에 LCSi-1+1을 더해준다.최장 공통 부분 문자
데이터가 정렬돼 있는 배열에서 특정한 값을 찾아내는 알고리즘이다.1.배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 X와 비교2.X가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로, X가 중간값보다 크면 배열의 우측을 대상으로 다시 탐색3.
명령어를 분기해서 큐 연산을 하는 간단한 문제이다.heapq 라이브러리를 이용하면 최솟값, 최댓값 연산을 간단하게 할 수있다.최소 힙으로 구성해서 최솟값 삭제는 heappop()으로, 최댓값 삭제는 리스트 pop() 연산으로 해결하면 되기 때문이다.
각 구슬의 무게를 나타내는 weights 배열이다. weightsi는 i번째 구슬의 무게를 나타낸다.구슬을 나눌 가방의 수 k입니다.구슬을 다음 규칙에 따라 k개의 가방으로 나눠야 한다.어떤 가방도 비어있지 않아야 한다. 만약 i번째 구슬과 j번째 구슬이 같은 가방에
영어문제를 번역하면 아래와 같다.문제는 n x n 크기의 정수 행렬(board)이 주어지며, 이 행렬의 각 칸은 Boustrophedon 스타일로 라벨이 붙어 있습니다. 라벨링은 보드의 왼쪽 아래에서 시작하여 시작하며, 각 행은 번갈아 가면서 라벨이 매겨집니다.위의 부