
풀이 def DFS(v): # 4. visited를 순회하며 선택한 숫자들만 출력하기 if v == N+1: for i in range(1, N+1): if visited[i]: print(i, end=' ') print() else: # 2. 현재 숫자를 선택 후, 다음 숫자로 넘어가기 visited[v] = 1 DFS(v+1) # 3. 현재 숫자를 선택하지 않고, 다음 숫자로 넘어가기 visited[v] = 0 DFS(v+1) N = int(input()) # 1. 1부터 N까지 차례대로 선택 visited = [0] * (N+1) DFS(1) 풀이과정 1부터 N까지 차례대로 선택한다. 현재 숫자를 선택하고, 다음 숫자로 넘어간다. 현재 숫자를 선택하지 않고, 다음 숫자로 넘어간다. 마지막 숫자까지 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL; 풀이과정 OUTS 테이블에는 있으나 INS 테이블에는 없는 ANIMAL 정보를 찾아라 왼쪽 테이블 : OUTS, 오른쪽 테이블 INS LEFT JOIN (LEFT OUTER JOIN) 시, 왼쪽 테이블에는 있고 오른쪽 테이블에는 없는 값을 N..

3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 문제 이해하기 개똥벌레가 동굴을 지날 때 뚫어야하는 장애물의 최소 개수와 그 층 ? 예시와 같이 5개의 층이 있는 동굴에서 몇 층을 지나가야하는지 구해야한다. 각 층별로 장애물의 총 개수를 확인한다. 장애물 개수가 가장 작은 층들이 정답이 된다. 각 층의 장애물 개수를 나타내는 리스트를 만들고, 장애물을 하나씩 조사하며 높이에 맞게 리스트 요소를 업데이트 해준다. 즉, 리스트 = 동굴, 리스트 인덱스 = 각층, 리스트 요소 = 장애물의 개수가 된다. lst = [0..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해하기 모든 사람이 심사받는데 걸리는 최소 시간? n명의 사람이 입국심사를 받는데 걸리는 시간은 최소 1분에서 최대 n * max(times)분이다. n = 6, times = [7, 10]인 예제 1의 경우를 보자. 6명이 심사를 받는 데 걸리는 최대 시간은 모든 사람이 10분 걸리는 심사대를 거치는 경우로, 60분이다. 1분부터 60분까지 모든 시간에 대해 해당 시간동안 모든 사람이 심사를 받을 수 있는지 확인하면 된다. n은 최대 1,000,000,000명, times 요소의 최대값은 1,000,..
10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 이해하기 () ( ( ( ()() ) ( () ) () ) ) ( () ) 빨간 색 : 레이저 검은 막대기 : 4개의 레이저 → 5덩어리 노란 막대기 : 4개의 레이저 → 5덩어리 보라 막대기 : 2개의 레이저 → 3덩어리 파란 막대기 : 1개의 레이저 → 2덩어리 초록 막대기 : 1개의 레이저 → 2덩어리 ∴ 5 + 5+ 3 + 2 + 2 = 17 덩어리 )는 레이저이거나, 한 막대기가 끝나는 지점이다. 만약 레이저라면, 그 레이저 앞에 위치한 모든 막대기가 나누어져..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해하기 입력값의 의미 stones = [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] → 각 돌을 밟고 지나갈 수 있는 사람의 수 k = 3 → 최대로 건너뛸 수 있는 돌 개수 즉, 3개까지 건너뛸 수 있다. 문제 접근 최대 몇 명까지 징검다리를 건널 수 있나? 징검다리를 건널 수 있는 사람의 수는 최소 1명부터 최대 5명까지다. stones 배열 최대값이 5이므로, 최대 5명까지 밟을 수 있는 돌이 있기 때문이다. 그렇다면, 1명부터 5명까지 사람 수를 지정해가며 조건에 맞는 가장 큰 수를 구..

1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 from collections import deque import sys sys.stdin = open('input.txt') # 1. 입력받은 그래프를 인접리스트로 생성 N, M, V = map(int, input().split()) arr = [[] for _ in range(N+1)] for _ in range(M): i, v = map(int, input().split()) arr[i].append(v) arr[..
2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 from collections import deque # 1. 입력받기 N = int(input()) arr = [list(map(int, input())) for _ in range(N)] # 2. 방향 di = [-1, 1, 0, 0] dj = [0, 0, -1, 1] # 3. DFS ## 3-1. 시작점 찾기 cnt_lst = [] for i in range(N): for j in range(N): if arr[i][j]: cnt = 1 arr[i][j..
- Total
- Today
- Yesterday
- 파이썬
- docker
- 하둡
- ubuntu
- django
- sql대소문자
- 티스토리챌린지
- stream=true
- SQL
- re라이브러리
- 백트래킹
- 스택
- 프로그래머스
- 우분투
- 빅데이터
- hdfs
- Linux
- mysql binary
- json필드
- sql 데이터타입 변경
- 정규표현식
- 완전탐색
- SSAFY
- 백준 3020
- 리눅스
- 백준
- 바이너리 조건
- MySQL
- 싸피
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |