👉 오늘 한 일
- 프로그래머스 문제풀이(level 0)
- 프로그래머스 SQL 문제풀이
프로그래머스 문제풀이
1. 안전지대 📌
- [프로그래머스] Lv.0 안전지대
- 정답률 53%, try 3
- 정확성 63 (테케 1,4,5,7 오답)
- board와 같은 크기의 0 배열을 생성한 후 매핑하는 형태로 풀려고 했으나 테스트 케이스에서 막혔다..
import numpy as np
def solution(board):
result = 0
dim = np.zeros_like(board)
row = -1
for lst in board:
row += 1
for i,j in enumerate(lst):
if j == 1:
try:
dim[row][i] += 1
dim[row-1][i-1] += 1
dim[row-1][i] += 1
dim[row-1][i+1] += 1
dim[row][i-1] += 1
dim[row][i+1] += 1
dim[row+1][i-1] += 1
dim[row+1][i] += 1
dim[row+1][i+1] += 1
except:
pass
for z in dim.tolist():
result += z.count(0)
return result
- 다른 사람 풀이
- 정석적으로 DFS, BFS를 많이 사용하는 것 같다.
def solution(board):
N = len(board)
dx = [-1, 1, 0, 0, -1, -1, 1, 1]
dy = [0, 0, -1, 1, -1, 1, -1, 1]
booms = []
for x in range(N):
for y in range(N):
if board[x][y] == 1:
booms.append((x, y))
for x, y in booms:
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < N and 0 <= ny < N:
board[nx][ny] = 1
count = 0
for x in range(N):
for y in range(N):
if board[x][y] == 0:
count += 1
return count
2. 문자열 정렬하기 (2)
def solution(my_string):
my_string = ''.join(sorted(my_string.lower()))
return my_string
3. 합성수 찾기
def solution(n):
result = 0
lst = [num for num in range(4, n+1)]
for i in lst:
m = []
for j in range(2, i+1):
if i % j == 0:
m.append(j)
if len(m) != 1:
result += 1
return result
def solution(n):
output = 0
for i in range(4, n + 1):
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
output += 1
break
return output
4. 모스부호 (1)
def solution(letter):
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
}
trans = []
letter = letter.split()
for l in letter:
trans.append(morse[l])
result = ''.join(trans)
return result
SQL
1. 상위 n개 레코드
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
2. 여러 기준으로 정렬하기
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC
3. 모든 레코드 조회하기
SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID