본문 바로가기
728x90

전체 글279

[PG/Python] N-Queen 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr 📌 문제 접근 방법 어차피 한 행에 하나의 퀸만 놓을 수 있으므로 행을 하나씩 늘려가며 재귀함수를 돌리고, 행이 n과 같아지면 n개의 퀸을 모두 놓았다는 뜻이므로 answer를 1 더해주고 리턴하는 방식으로 구현하였다. cols, minus, plus라는 리스트를 만들었는데, cols는 각 열에 하나의 퀸만 놓을 수 있으므로 지금 놓여있는.. 2022. 2. 27.
[PG/Python] 삼각 달팽이 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 📌 문제 접근 방법 각 행마다 행번호에 +1한만큼 0을 채워서 2차원 배열 snail을 생성한다. 삼각형을 보면 처음에는 n개의 숫자가 아래 방향으로 채워지고, 그 다음은 n-1개의 숫자가 왼쪽 방향, 그 다음은 n-2개의 숫자가 위쪽 방향으로 채워진다. 즉, 방향은 무조건 아래->왼쪽->위 이고, 채워지는 숫자의 개수는 1씩 줄어든다. 이를 코드로 옮기면, .. 2022. 2. 27.
[PG/Python] 단속카메라 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 📌 문제 접근 방법 차량이 고속도로에서 나간 지점을 기준으로 정렬을 해준다. 맨 처음 차량이 나간 지점에 카메라를 하나 설치하고 answer의 개수를 1로 초기화한다. routes를 순회하며 마지막에 설치한 카메라 위치보다 더 앞 쪽에서 차량이 진입했을 경우, 그 차량이 나간 지점에 카메라를 새로 설치하고 answer의 개수를 1 더한다. 위의 과정을 반복 후 answer를 반환한다. 포인트는 차량이 나간 지점을 기준으로 카메라를 설치한다는 것! 📌 코드 .. 2022. 2. 27.
[SQL] SQL 기본 문법 SQL (Structured Query Language) 관계형 데이터베이스 관리시스템의 데이터 관리를 위해 설계된 특수 목적으로 된 프로그래밍 언어 데이터베이스 스키마 생성 및 수정 자료의 검색 및 관리 데이터베이스 객제 접근 조정 관리 - DDL (Data Definition Language) : 데이터 정의 언어 관계형 데이터베이스 구조(테이블, 스키마)를 정의하기 위한 명령어 CREATE, DROP, ALTER - DML (Data Manipulation Language) : 데이터 조작 언어 데이터를 저장, 조회, 수정, 삭제 등을 하기 위한 명령어 INSERT, SELECT, UPDATE, DELETE - DCL (Data Control Language) : 데이터 제어 언어 데이터베이스 사용.. 2022. 2. 13.
[PG/Python] 아이템 줍기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/87694 코딩테스트 연습 - 아이템 줍기 [[1,1,7,4],[3,2,5,5],[4,3,6,9],[2,6,8,8]] 1 3 7 8 17 [[1,1,8,4],[2,2,4,9],[3,6,9,8],[6,3,7,7]] 9 7 6 1 11 [[2,2,5,5],[1,3,6,4],[3,1,4,6]] 1 4 6 3 10 programmers.co.kr 📌 문제 접근 방법 사각형의 테두리와 테두리를 제외한 내부의 점들의 좌표를 각각 border와 inner에 저장하였다. border에 좌표를 저장할 때는 다른 사각형의 내부에 있는 경우를 제외해야 하므로 inner에 없는 좌표만 저장한다. inner에 좌표를 저장할 때는.. 2022. 2. 6.
[PG/Python] 징검다리 건너기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/64062# 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 📌 문제 접근 방법 처음엔 당연히 효율성에서 0점을 맞을 줄 알면서도 한 명씩 징검다리를 건너는 상황을 구현했다. 역시 효율성을 통과 못하고 찾아봤더니 결국 이분탐색..! 징검다리에 적힌 숫자의 최소와 최대를 시작과 끝으로 정하고 이분탐색으로 풀었다. 근데 사실 아직 answer를 갱신하는 부분이 이해가 잘 안간다... if-else문에서 else문에 answer를 갱신하도록 했더니 테케 2개가 자꾸 틀려서 if문쪽으로 올려줬더니 성공했다.. 나중에 이분탐색을 다시.. 2022. 2. 6.
[PG/Python] 입국심사 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 📌 문제 접근 방법 최소 시간을 구해야하므로 처음에는 최소힙을 이용해서 풀이하였다. i를 현재 심사를 기다리는 사람의 번호라고 하면, 힙에 (i번째 사람의 심사가 끝날 시간, 심사관의 심사 시간)을 push해줬다. 그 후 i를 계속 늘려가며 n이 될 때까지 힙에서 최소 시간을 pop하고 다시 걸린 시간만큼 더해서 push하는 작업을 반복한다. -> 이런 .. 2022. 1. 25.
[PG/Python] 2 x n 타일링 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 📌 문제 접근 방법 n이 1일 때부터 경우의 수를 모두 계산해보니 점화식이 f(n) = f(n-1) + f(n-2)가 나왔다. 위의 식을 피보나치 수열이라고 하는데, 이를 재귀로 구현할 경우 시간이 오래걸리기 때문에 메모이제이션을 사용해서 풀이했다. 하지만 시간초과가 나서 질문하기를 살펴보니, 나는 매번 연산을 하는게 시간이 오래걸릴거라고 .. 2022. 1. 24.
[Python] 문자열의 숫자 판단 - isdecimal(), isdigit(), isnumeric() isdecimal(), isdigit(), isnumeric() 문자열 내의 문자가 숫자인지 판단하는 함수 str.isdecimal() 문자열 내의 모든 문자가 십진수 문자이고, 적어도 하나의 문자가 존재하는 경우 True / 그렇지 않으면 False 반환 십진수 문자 : 형식적으로 십진수 문자는 유니코드 일반 범주 《Nd》 에 속하는 문자 int형으로 변환 가능한 숫자만 True (특수문자 해당안됨) string = '4' print(string.isdecimal()) # True print(string.isdigit()) # True print(string.isnumeric()) # True str.isdigit() 문자열 내의 모든 문자가 digit이고, 적어도 하나의 문자가 존재하는 경우 True.. 2022. 1. 15.
[Python] 파이썬을 파이썬답게 - 반복문, 이진 탐색, 가장 큰 수 https://programmers.co.kr/learn/courses/4008 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr [for문과 if문을 한 번에 - List comprehension] mylist = [3, 2, 6, 7] answer = [] for number in mylist: if number % 2 == 0: answer.append(number**2) # 들여쓰기를 두 번 # list comprehension 사용 mylist = [3, 2, 6, 7] answer = .. 2022. 1. 15.
728x90