분류 전체보기

코딩테스트

[BOJ/Python] 3197. 백조의 호수 (Platinum 5)

https://www.acmicpc.net/problem/3197  접근# 1. 시간초과 (매번 처음부터 BFS 시작)  매일 물 공간과 상하좌우로 접촉한 모든 빙판 공간은 녹는다. 두 백조가 만나려면 며칠이 걸릴까?   1. 먼저 두 백조의 위치를 찾는다. (L1, L2)2. 두 백조가 만날 수 있을 때까지 아래를 반복한다.    2-1. L1 위치에서 bfs를 시작하여 L2 위치까지 갔다면 종료한다.    2-2. 빙판에 막혔다면 물 공간과 접한 빙판 공간을 모두 녹이고 걸리는 날을 카운트한다.  전체 코드import sysfrom collections import dequeinput = sys.stdin.readlineR, C = map(int, input().split())lake = []swan..

Data Structure

[Python/Data Structure] List vs Tuple

취준하면서 회사 기술 면접에서 파이썬에 대한 질문들을 종종 받았었다. 그 중 파이썬의 자료인 list와 tuple에 대한 설명, 공통점, 차이점에 대한 질문을 받았다. 예상치못했던 질문이었고 너무 기초적인 부분밖에 기억나질 않아.. 답을 제대로 못한 것 같은 아쉬움이 남았다. 그래서 이 글을 통해 두 자료형에 대한 특징과 공통점, 차이점에 대해 정리해보고자 한다. 1. 특징 List [ ] list는 숫자, 문자열 등 어떠한 자료형을 요소로 가질 수 있다. 연산자 +를 사용해서 list와 list를 더할 수 있으며, 연산자 *를 사용해서 list를 반복할 수 있다. Tuple ( ) 요소 1개만 가질 때는 요소뒤에 쉼표(,)를 반드시 붙여야 한다. 예) t1 = (1, ) 소괄호를 생략해도 된다. 예) ..

코딩테스트

[Programmers/Python] 기둥과 보 설치

https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr💭풀이 과정1. 문제 조건inputn: 벽면의 크기 (5≤ n ≤ 100인 자연수)build_frame: 기둥과 보를 설치하거나 삭제하는 작업이 순서대로 담긴 2차원 배열[x, y, a, b]x, y는 기둥, 보를 설치 또는 삭제할 교차점의 좌표이며, [가로 좌표, 세로 좌표]a는 설치 또는 삭제할 구조물의 종류를 나타내며, 0은 기둥, 1은 보b는 구조물을 설치할 지, 혹은 삭제할 지를 나타내며 0..

코딩테스트

[Programmers/Python] 큰 수 만들기

문제https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=python3  풀이 예) number = '1231234', k = 3, answer = '3234'1. 결과는 number의 길이 7에서 3을 뺀 4자리가 된다.2. 처음엔 number의 k+1 전까지의 범위를 탐색하여 최댓값을 찾아, answer에 추가하고 index는 저장한다. (최댓값이 여러 개라면 앞에 있는 index의 최댓값으로 선정한다. 나중에 탐색할 문자열이 많을 수록 최댓값이 커지기 때문이다. )3. 2번의 과정을 n-k 번 반복한다. 대신 문자열 범위는 처음부터가 아닌 최댓값의 index +1 부터 k+1+t 까지 탐색한다.   1)def solutio..

코딩테스트

[Programmers/Python] 게임 맵 최단 거리 - BFS

문제https://school.programmers.co.kr/learn/courses/30/lessons/1844💭풀이 과정1. 문제 조건input: 게임 맵 2차원리스트 n x m1 ≤ n, m ≤ 100인 자연수, n과 m 모두 1인 경우Xmaps 값 0은 벽이 있고, 1은 벽이 없는 자리좌측 상단 (1, 1) 위치에서 시작, 상대 팀 진영 우측 하단 (n, m) 위치return: 상대 팀 진영까지 지나간 칸 개수 최솟값출발칸, 도착칸(상대 팀 진영 칸) 포함상대 팀의 진영 주위에 다 벽을 세워둔 경우, 상대 팀에 진영 도착할 수 없는 경우: return -12. 알고리즘최단 경로 (BFS)변수방문여부 및 거리체크를 위한 2차원 배열(visited)큐x, y 방향 배열 (dx, dy)[과정]큐에 ..

Database/MySQL

[MySQL] DATEDIFF, TIMEDIFF, PEROID_DIFF

프로그래머스 SQL문제를 풀다가 알게 된 사실! DATE - DATE 는 두 날짜 사이의 일수가 계산되는 것이 아니라 숫자로 연산된다. 그래서 뺄셈 연산이 아닌 DATEDIFF() 를 사용해야한다. DATEDIFF 를 포함하여 여러 날짜 계산 함수를 정리해놓으려 한다. DATEDIFF : 두 기간 사이의 일수 DATEDIFF (종료일, 시작일) 두 인수의 날짜 포맷은 YYYY-MM-DD 또는 YYYY-MM-DD HH:MM:SS 형태로 지정 시간은 계산에 포함하지 않음 TIMEDIFF : 두 기간 사이의 시간 - TIMEDIFF(종료시간, 시작시간) 두 인수의 시간포맷은 HH:MM:SS 또는 YYYY-MM-DD HH:MM:SS 형태로 지정 PEROID_DIFF : 두 기간 사이의 개월 수 PEROID_DI..

코딩테스트

[Programmers/Python] 가장 큰 수

문제https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=python3  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이 1. 배열 numbers 를 str으로 형변환한다.  2. 배열 numbers의 원소 num를 3번 곱한다. 3. 배열 numbers를 역정렬한다.  4. numbers를 join하고 str->int->str으로 형변환한다.  def solution(numbers): str_number = list(map(str, numbers)) str_number..

Python

파이썬을 파이썬 답게 Part.6 ~ 7

[목차]part6. Itertools / Collections 모듈part7. 기타  part6. Itertools / Collections 모듈곱집합(Cartesian product) 구하기 - product예시) 두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy 입니다.[for 문을 이용해 두 iterable의 원소를 하나씩 곱해가는 방법]iterable1 = 'ABCD'iterable2 = 'xy'iterable3 = '1234'for value1 in iterable1: for value2 in iterable2: for value3 in iterable3: print(value1, value2, value3) [파이썬의..

flozl
'분류 전체보기' 카테고리의 글 목록