백트래킹 문제로 되게 유명하다면서/!??! 그래서 풀어봤다 백트래킹 유형중에 백준에서 푼사람이 가장 많은 문제이기도 하다 백트래킹이란 ? 해를 찾는 도중에 해당 노드가 해가 아니라서 막히면 되돌아가서 다시 해를 찾아가는 기법이다. 첫번째 풀이는 시간초과가 났다 dfs로 퀸을 배치하고, 배치한다음에 시뮬레이션 돌려서 퀸을 공격할 수 있는지 없는지 여부를 true , false 로 반환해서 true 값을 세려고 했다 시간 초과 판정이 떴다. 퀸을 배치하는 과정에서 조금 더 개선해볼 수 있지 않을까 ??? # 9663 N-Queen n = int(input()) graph = [[0]*n for _ in range(n)] dx = [-1, 1, 0, 0, -1, -1, 1, 1] dy = [0, 0, -1, ..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.1. 테스트 케이스 개념 : 특정 요구 사항에 준수하는 지를 확인하기 위해서 개발된 입력값, 실행조건, 예상된 결과의 집합 2. 테스트 오라클 개념 : 테스트 결과가 참인지 거짓인지를 판단하기 위해서 정의된 참 값을 입력하여 비교하는 기법 종류 : 참 오라클 / 샘플링 오라클 / 휴리스틱 오라클 / 일관성 검사 오라클 3. 테스트 레벨 1) 테스트 레벨 종류 단위테스트 : 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트 하는 단계 ex ) 인터페이스 / 자료구조 / 실행 경로/ 오류 처리 테스트 통합 테스트 : 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계 ex) 빅뱅 테스트, 상향식/하향식 테스트 시스템 테스트 : 개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에..
·개발일기
1. People Space Internship 회사는 캘리포니아 실리콘벨리에 있고, 코로나 때문에 비대면으로 2달간 진행했다. 학교 연계해서 참여할 수 있었다. StockReader 라는, 주식을 ai 로 예측해서 알려주는 웹서비스를 개발했다. 파트는 ai/FE/BE로 나뉘었다. 난생처음 백엔드를 자처해서 해보겠다고 했다 매번 프로젝트 때 마다 프론트엔드를 위주로 했었는데, 서버 구조를 잘 이해해보고 싶어서 백엔드를 해보겠다고 했다. 취업을 생각하면 프론트이지만, 그래도 한번 해보길 잘한것 같다 !! 장고 프레임워크를 배우면서 바로 개발에 투입되어야 했다 빨리빨리!!! 배워야 하는 시기여서 좀 어려웠던 것 같다 (특히나 iOS도 새로운 프레임워크를 사용해야 했던 시기) 그러면서도 프론트에 데이터가 잘 ..
https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 사실 for 문으로 출력해도 시간안에 풀 수 있었지만 , join으로 출력하는게 훨씬 시간 단축이 되었다 1. for문으로 출력할 때 2. join으로 출력할 때 기억해두자 !! n, m = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())..
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 플로이드 알고리즘 그대로 구현하면 되는 문제이다. 단 !!! 시작 도시와 도착 도시를 연결하는 노선이 여러개일 수 있다 따라서 입력 받을 때, cost가 가장 작은 노선만 남겨두는 처리 과정이 필요하다 # 플로이드 INF = int(1e9) n = int(input()) # 도시 개수 m = int(input()) # 버스 개수 graph = [[INF]*(n+1) for _ in range(n+..
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 이진탐색 라이브러리인 bisect의 bisect_left와 bisect_right을 이용하여 같은 길이의 가사들 중에서 쿼리를 포함하는 단어의 첫 인덱스, 마지막 인덱스 차이를 구한다 ! 이진 탐색 라이브러리 bisect 정리 : https://sinclairstudio.tistory.com/85 python bisect, bisect_left, bisect_right Python에서 이진탐색을 라이브러리로 제공한다 ! bisect 라이브러리는 정렬된 배열 내에서 특정 원소를 찾을 때 O(logN)으로 동작한다. bisect_left() 함수..
Python에서 이진탐색을 라이브러리로 제공한다 ! bisect 라이브러리는 정렬된 배열 내에서 특정 원소를 찾을 때 O(logN)으로 동작한다. bisect_left() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메소드 bisect_right() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메소드 중요한건 정렬된 순서를 유지! 하면서 인덱스를 찾는것이다 예를 들어 리스트 [1, 2, 4, 4, 8] 이 있다면 bisect_left(a, 4)는 리스트에서 4가 처음으로 등장하는 위치인 2를 반환한다. 그리고 bisect_right(a, 4) 는 리스트를 4가 마지막으로 등장하는 위치 인덱스 +1 의 위치인..
나의 시간 초과 코드 ㅋㅋㅋㅋ 답은 나오는데....비효율적이라는 거지 # 2110 공유기 설치 from itertools import permutations n,c = map(int, input().split()) array = [] for i in range(n): array.append(int(input())) result = 0 array.sort() # 탐색을 위해 정렬하기 for case in permutations(array, c): temp = n for i in range(c-1): temp = min(temp, case[i+1]-case[i]) result = max(temp, result) print(result) 이 문제의 유형은 이진탐색이다 .. 이진탐색 !!! 즉, '최대 인접 거..