알고리즘
-
구현 알고리즘 : 외벽 점검 - 파이썬 (python)알고리즘/구현 2021. 11. 4. 22:21
https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr * 아이디어 1 👎 (1) weak 배열 간의 거리를 구한다. 예를 들어, 테스트케이스 1의 경우에는 weak = [1, 5, 6, 10] 이므로 (외벽의 길이 n = 12) weak 배열 간의 거리 weak_gap = [4, 1, 4, 3] 이 된다. (2) weak_gap에서 가장 큰 값 다음 인덱스부터 가장 큰 값 앞까지 순회한다. 위의 경우에는 weak_..
-
백준 15686번 : 치킨 배달 - 파이썬 (python)알고리즘/구현 2021. 11. 3. 21:56
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net * 파이썬 조합 (combinations) from itertools import combinations를 import한 후 combinations(반복 가능한 객체, 뽑을 개수)로 사용 from itertools import combinations data = [[0, 1], [0, 3], [1, 1]] comb = list(combinations(data, 2)) prin..
-
구현 알고리즘 : 기둥과 보 설치 - 파이썬 (python)알고리즘/구현 2021. 11. 2. 22:04
https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr * 아이디어1 → 구현 실패 (1) 2n 크기의 배열을 0으로 초기화하여 새로 생성..
-
구현 알고리즘 : 뱀 - 파이썬 (python)알고리즘/구현 2021. 10. 25. 21:20
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net * 문제 예시 설명 - 뱀은 몸길이를 먼저 늘린 후 이동 → 이동한 칸에 사과가 있다면 꼬리 움직이지 않음 이동한 칸에 사과가 없다면 꼬리가 위치한 칸을 비움 - 주어지는 뱀의 방향 변환 정보는 게임 시작 시간으로부터 X초이고, X초가 지난 후에 방향을 변환함 ex. 8 D, 10 D, 11D, 13L이 주어진 경우 8초동안 오른쪽으로 진행 (초기 방향 설정이 오른쪽이므로) → D (오른쪽으로 방향 회전..
-
구현 알고리즘 : 자물쇠와 열쇠 - 파이썬 (python)알고리즘/구현 2021. 7. 6. 12:09
https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr - 제한 사항 · key는 M x M (3≤M≤20, M은 자연수) 크기 2차원 배열입니다. · lock은 N x N (3≤N≤20, N은 자연수) 크기 2차원 배열입니다. · M은 항상 N 이하입니다. · key와 lock의 원소는 0 또는 1로 이루어져 있습니다. 이때 0은 홈 부분, 1은 돌기 부분을 나타냅니다. * 아이디어 (1) (1) 리스트를 90도 회전시키는 함수 구현 : (x, y)를 90도 회전..
-
구현 알고리즘 : 문자열 압축 - 파이썬 (python)알고리즘/구현 2021. 6. 24. 02:27
https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr * 아이디어 (1) 문자열을 1개, 2개, ..., n개로 나누어서 리스트 형태로 result에 저장 (2) result[x]와 result[x+1]을 비교해서 같으면 count 변수를 1 증가 (3) 같지 않으면 s_result에 결과값 저장 (count가 2 이상인 경우에만 앞에 숫자를 붙인 후 result[x]를 덧붙여..
-
구현 알고리즘 : 문자열 재정렬 - 파이썬 (python)알고리즘/구현 2021. 6. 23. 20:41
- 입력 조건 첫째 줄에 하나의 문자열 S가 주어집니다. (1 ≤ S의 길이 ≤ 10,000) - 출력 조건 첫째 줄에 문제에서 요구하는 정답을 출력합니다. - 테스트케이스 K1KA5CB7 → ABCKK13 AJKDLSI412K4JSJ9D → ADDIJJJKKLSS20 * 방법 1 : 직접 구현한 방법 (1) for문으로 문자열에서 숫자인 경우를 찾고 숫자의 합을 s_num 변수에 저장 (2) 숫자가 아닌 문자인 경우 문자를 아스키코드 값으로 변환 (ord) 후 ascii_result 변수에 저장 (3) 아스키코드 값을 기준으로 오름차순 정렬 (.sort) (4) 정렬한 아스키코드 값을 다시 문자로 변경 (chr) 후 하나의 문자열로 합치기 (5) 합친 문자열 끝에 숫자의 합 (s_num) 합치기 # 방..
-
구현 알고리즘 : 럭키 스트레이트 - 파이썬 (python)알고리즘/구현 2021. 6. 23. 19:24
https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net - 입력 조건 첫째 줄에 점수 N이 정수로 주어집니다. (10≤N≤99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어집니다. 예를 들어 자릿수가 5인 12,345와 같은 수는 입력으로 들어오지 않습니다. - 출력 조건 첫째 줄에 럭키 스트레이트를 사용할 수 있다면 "LUCKY"를, 사용할 수 없다면 "READY"를 출력합니다. - 테스트케이스 123456 → LUCKY 7755 → READY * 아이디어 (1) 문자열로 입력받기..