본문 바로가기

분류 전체보기263

[JavaScript] 테트리스 웹 게임 만들기 (5) 블록 체크 테트리스 웹 게임 만들기 (5) 블록 체크 1. 기존의 호출했던 renderBlock을 checkNextBlock으로 바꿈 기존의 바로 renderBlock을 해주던 것을 checkNextBlock을 거쳐서 renderBlock을 해주기 위해 전부 checkNextBlock으로 바꿔준다. 전체 코드는 아래와 같이 바뀌게 된다. // js/tetris.js 'use strict' import Blocks from './blocks.js' export default class Tetris { constructor() { //setting this.N = 20 this.M = 10 this.downInterval = undefined //block this.blockInfo = undefined //dom t.. 2022. 2. 18.
[백준] 2143번 - 두 배열의 합 (파이썬) # 두 배열의 합 import sys import bisect input = sys.stdin.readline K = int(input()) N = int(input()) A = list(map(int, input().split())) M = int(input()) B = list(map(int, input().split())) sum_A = [] for i in range(N): sum = 0 for j in range(i, N): sum += A[j] sum_A.append(sum) sum_B = [] for i in range(M): sum = 0 for j in range(i, M): sum += B[j] sum_B.append(sum) result = 0 sum_B.sort() for sum_a.. 2022. 2. 18.
[백준] 2352번 - 반도체 설계 (파이썬) # 반도체 설계 import sys import bisect input = sys.stdin.readline N = int(input()) port = list(map(int, input().split())) result = [port[0]] for x in range(1, N): if port[x] > result[-1]: result.append(port[x]) else: index = bisect.bisect_left(result, port[x]) result[index] = port[x] print(len(result)) 이진탐색, bisec 1. 입력을 받고 port의 첫번째 값을 result에 추가 2. 남은 port의 값중에서 - result의 마지막 값보다 크면 append - result.. 2022. 2. 18.
[백준] 3109번 - 빵집 (파이썬) # 빵집 import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [] for _ in range(N): arr.append(list(input().strip())) dx = [-1, 0, 1] dy = [1, 1, 1] def pipe(x, y): global result arr[x][y] = 'o' if y == M-1: result += 1 return True for k in range(3): nx = x + dx[k] ny = y + dy[k] if 0 2022. 2. 18.
[JavaScript] 테트리스 웹 게임 만들기 (4) 블록 이동 및 전환 테트리스 웹 게임 만들기 (4) - 블록 이동 및 전환 1. 이벤트 정의 테트리스 js의 생성자에 다음 이벤트를 추가했다. 위에서 3개는 좌,우,하 로 블록 이동이고, 이어서 방향전환(위), 블록드랍(스페이스바)이다. //events document.addEventListener('keydown', (e) => { switch (e.keyCode) { case 39: this.moveBlock('m', 1) break case 37: this.moveBlock('m', -1) break case 40: this.moveBlock('n', 1) break case 38: this.changeDirection() break case 32: this.dropBlock() break default: break .. 2022. 2. 15.
[프로그래머스] - 블록게임 (파이썬) # 블록게임 import copy dx = [[0, 0, 0, 1, 1, 1], [0, 0, 1, 1, 2, 2]] dy = [[0, 1, 2, 0, 1, 2], [0, 1, 0, 1, 0, 1]] answer = 0 def solution(board): N = len(board) global answer while True: if not drop_block(board): break return answer def drop_block(arr): N = len(arr) for j in range(N): for i in range(N): if arr[i][j] == -1: continue if arr[i][j] != 0: break arr[i][j] = -1 return check(arr) def check.. 2022. 2. 15.
[프로그래머스] - 매칭점수 (파이썬) # 매칭점수 from operator import indexOf import re def solution(word, pages): pages_info = [] for i, page in enumerate(pages): temp = list(seperate(word, page)) + [0, i] pages_info.append(temp) for page in pages_info: url, basic_score, link_num, links, link_score, index = page for link in links: for page in pages_info: if link == page[0]: page[4] += basic_score / link_num pages_info.sort(key=lambda x.. 2022. 2. 15.