본문 바로가기

컴퓨터

MYSQL UPDATE 에러코드 1175 해결 1. SQL_SAFE_UPDATES 0으로 세팅 2. Edit - Preference 설정에서 Safe Update 체크 해제 더보기
프로그래머스 여행경로 - 백트래킹 def dfs(ans, routes, pointNum, answer, isFinished): if len(ans) == pointNum: if not isFinished[0]: for i in ans: answer.append(i) isFinished[0] = True return nexts = isPossible(ans[-1], routes) for next in nexts: if not isFinished[0]: next[1] = True ans.append(next[0]) dfs(ans, routes, pointNum, answer, isFinished) # 티켓 사용여부 False로 돌려놓음 next[1] = False ans.pop() def isPossible(start, routes): re.. 더보기
Word 엔터 표시 없애기, 글자수 확인 1. 개행표시, 엔터 표시 없애기 체크해제 2. 글자수 확인 더보기
릿코드 37- Sudoku Solver, nQueen 다시풀기 def dfs(board, empty, count): global isEnd if count == len(empty): for i in board: print(i) isEnd = True return y,x = empty[count] nums = possible(board, y, x) for num in nums: if not isEnd: board[y][x] = num dfs(board, empty, count+1) board[y][x] = 0 def possible(board, y, x): nums = [True for i in range(10)] for i in range(9): nums[board[y][i]] = False nums[board[i][x]] = False y = (y//3) * 3 .. 더보기
nQueen - 백트래킹 def dfs(positions, row) : n = len(positions) if n == row: #끝까지 왔으므로 1 return 1 count = 0 for col in range(n) : positions[row] = col if check(positions, row): count += dfs(positions, row + 1) return count def check(pos, row) : for i in range(row): if pos[i] == pos[row] or (row-i == abs(pos[i] - pos[row])): return False return True def solution(n): ans = [0] * n return dfs(ans, 0) # 1~12까지 for i i.. 더보기
백준 2042 세그먼트 트리 import sys N, M, K = map(int, input().split()) nums = [0] + [int(sys.stdin.readline()) for _ in range(N)] position = [0 for _ in range(N+1)] orders = [list(map(int, sys.stdin.readline().split())) for _ in range(M+K)] arr = [0] * 4 * N def init(start = 1, end = N, index = 1): if start == end : arr[index] = nums[start] position[start] = index return arr[index] mid = (start + end) // 2 arr[index] =.. 더보기
백준 17114 - 미세먼지 확산 빡구현 문제였다. 카카오 기출 카드짝 맞추기도 그렇고 이번문제도 그렇고 이것저것 많이 풀어보다보니 확실히 구현문제 실력이 성장한 것 같다. def spread(arr, height, width, cleaner) : spreadList = [] direction = { 0:[0,-1], 1:[0,1], 2:[-1,0], 3:[1,0] } newArr = [[ 0 for _ in range(width)] for i in range(height)] newArr[cleaner[0]][0] = -1 newArr[cleaner[1]][0] = -1 for y in range(height): for x in range(width): if arr[y][x] == -1 : continue if arr[y][x] != 0.. 더보기
백준 11657 타임머신 INF = int(1e9) def solution() : for i in range(node): for s,e,v in edgeArr: if dist[s] != INF and dist[e] > dist[s] + v : dist[e] = dist[s] + v if i == node-1: return True return False node, edge = map(int, input().split()) edgeArr = [] dist = [INF] * (node + 1) dist[1] = 0 for i in range(edge) : edgeArr.append(list(map(int,input().split()))) if solution() : print(-1) else : for i in range(2, no.. 더보기
카카오 기출 - 카드 뒤집기 from itertools import permutations def movePosition(start, end, board): startY, startX = start endY, endX = end cnt = 0 # 가로먼저 이동 if startX < endX: if endX - startX == 1: cnt += 1 elif endX - startX == 2: if board[startY][startX + 1] != 0: cnt += 2 elif endX == 3: cnt += 1 elif board[startY][endX] != 0: cnt += 1 elif board[startY][endX] == 0: cnt += 2 elif endX - startX == 3: for i in range(1, 4.. 더보기
카카오 기출 - 표편집 실패 from functools import reduce def moveCur(movement, arr, curIdx, m): while movement > 0: curIdx += m if arr[curIdx][1] == 'O': movement -= 1 return curIdx def findNextIdx(curIdx, arr): length = len(arr) ret = curIdx while curIdx 0: ret -= 1 if arr[ret][1] == 'O': return ret def solution(n, k, cmd): answer = '' curIdx.. 더보기