https://www.acmicpc.net/problem/5052

 

5052번: 전화번호 목록

문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가

www.acmicpc.net

 

import sys

for _ in range(int(input())):
    n = int(sys.stdin.readline())
    flag = "YES"
    li = []
    for _ in range(n):
        li.append(sys.stdin.readline().rstrip('\n'))

    li.sort()
    for i, j in zip(li, li[1:]):
        if i == j[:len(i)]:
            flag = "NO"

    print(flag)

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 16929 Two Dots (python)  (0) 2020.09.03
[BOJ] 10026 적록색약 (python)  (0) 2020.09.03
백준 #13549 숨바꼭질3 (Python)  (0) 2020.04.12
백준 #9251 LCS [Python]  (0) 2020.03.27
백준 #1655 가운데를 말해요 [Python]  (0) 2020.03.27
from collections import deque

def bfs():
    q = deque([n])
    while q:
        x = q.popleft()
        if x == k:
            return array[x]
        for nx in (x-1, x+1, 2*x):
            if 0 <= nx < MAX and not array[nx]:
                if nx == 2*x and x != 0:
                    array[nx] = array[x] 
                    q.appendleft(nx) # 2*X 가 더 높은 우선순위를 가지기 위함
                else:
                    array[nx] = array[x] + 1
                    q.append(nx)
    
MAX = 100001
n, k = map(int, input().split())
array = [0] * MAX
print(bfs())

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 16929 Two Dots (python)  (0) 2020.09.03
[BOJ] 10026 적록색약 (python)  (0) 2020.09.03
백준 #5052 전화번호목록 (Python)  (0) 2020.04.16
백준 #9251 LCS [Python]  (0) 2020.03.27
백준 #1655 가운데를 말해요 [Python]  (0) 2020.03.27

git flow에 관한 전체적인 도식

 

  • master branch : 배포되었거나, 배포될 소스가 저장되는 branch

  • develop branch : 마일스톤마다의 배포를 위한 개발을 진행하는 branch

  • feature branch : 각 개발자에 의해 기능 단위 개발이 진행되는 branch (ex> create-crawler)

    → 개발이 완료되면 develop branch로 merge되고, 해당 branch는 삭제한다.

  • release branch : 내부적으로 배포할 준비가 되었다고 생각되는 소스가 저장되는 branch

    → 요구되는 기능을 개발하고, 배포하기 전에 테스트를 거치는 소스가 저장된다.

  • hotfixs branch : 배포 버전에 생긴 문제로 긴급한 수정이 필요할 때 개발이 진행되는 branch

    → 배포된 master branch에서 새로운 hotfixs 브랜치를 생성하고, master 브랜치에 merge, 출시 버전에서 생긴 문제는 develop branch에도 적용되어야 한다.

 

x= input()
y= input()

dp = [[0] * (len(y)+1) for _ in range(len(x)+1)]

for i in range(1, len(x)+1):
    for j in range(1, len(y)+1):
        if x[i-1]==y[j-1]:
            dp[i][j] = dp[i-1][j-1] +1
        else:
            dp[i][j] = max(dp[i][j-1], dp[i-1][j])

print(dp[len(x)][len(y)])
import sys 
import heapq

max_heap = []
min_heap = []

for _ in range(int(input())):
    num = int(sys.stdin.readline())
    if len(max_heap) == len(min_heap):
        heapq.heappush(max_heap, (-num, num))
    else:
        heapq.heappush(min_heap, (num, num))

    if min_heap and max_heap[0][1] > min_heap[0][1]:
        max_value = heapq.heappop(max_heap)[1]
        min_value = heapq.heappop(min_heap)[1]
        heapq.heappush(min_heap, (max_value, max_value))
        heapq.heappush(max_heap, (-min_value, min_value))

    print(max_heap[0][1])

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 16929 Two Dots (python)  (0) 2020.09.03
[BOJ] 10026 적록색약 (python)  (0) 2020.09.03
백준 #5052 전화번호목록 (Python)  (0) 2020.04.16
백준 #13549 숨바꼭질3 (Python)  (0) 2020.04.12
백준 #9251 LCS [Python]  (0) 2020.03.27

캡틴 판교(장기효) 님의  [Vue로 구현하는 PWA] 강의를 듣고 중요 내용을 요약하여 정리합니다.

아래 깃헙블로그에서 가독성 좋게 보실 수 있습니다.

https://nuatmochoi.github.io/notesite/07.html

 

Deployment with Vue CLI, PWA | Vuejs Lecture Note

Deployment with Vue CLI, PWA Deployment with Vue CLI Webpack dev server는 Node moudles @vue cli-service에 존재한다. dist 폴더를 찾다보면 hash값이 포함된 파일을 찾을 수 있는데, Hash값은 브라우저 캐시와 같은 역할을 한다. 새로고침하더라도 기존 상태가 남아있지 않고 최신상태를 반영하기 위함. Component들이 vue 파일인데, 실제 npm run serve로 올

nuatmochoi.github.io


Deployment with Vue CLI, PWA

Deployment with Vue CLI

Webpack dev server는 Node moudles @vue cli-service에 존재한다.

dist 폴더를 찾다보면 hash값이 포함된 파일을 찾을 수 있는데, Hash값은 브라우저 캐시와 같은 역할을 한다.
새로고침하더라도 기존 상태가 남아있지 않고 최신상태를 반영하기 위함.

Component들이 vue 파일인데, 실제 npm run serve로 올려보면 element로 tag가 생성되어 있다. 즉, app.js에서 webpack을 사용해 받아온다는 것을 확인할 수 있음.

static file server와 webpack dev server의 차이를 잘 알아둬야 한다.

  • webpack dev server 포트번호 : 8080
  • static file server(npm run serve) 포트번호 : 5000

Continuous Deployment (CD)

지속적으로 배포하는 것. 실시간서비스나 협업 중에 유용하게 사용된다.

Netlify

배포 자동화를 도와준다. 소스변경이 일어났을 때 자동으로 배포시켜준다.

Publish directory는 해당 repository를 배포할 대상 위치를 가리킨다.

배포 자동화를 위해 프론트 배포는 Netlify를, 백엔드 배포는 Elastic Beanstalk을 많이 사용한다.

PWA 실습

기존 프로젝트에 PWA를 추가하는 실습이다. workbox를 사용하여 실습을 진행하였다.

이제는 sw-precache는 구시대 기술이다. 하지만 여전히 기업들은 많이 사용한다고 한다.

  1. Public-index.html 에다가 추가

    <link rel="manifest" href="manifest.json">
  2. public/manifest.json 생성

manifest 자동 생성 툴을 사용해 manifest.json을 쉽게 생성할 수 있다.

  1. npm install workbox-cli -g
  2. npm run build
  3. workbox wizard

    터미널에 다음과 같은 설정 사항들이 표시될 것이다.

  • Wabapp의 root (어디 배포하는지) - dist/
  • precache - 필요한 파일들이 선택되었는지 보고 enter
  • 서비스 워커 저장 위치 - dist/sw.js
  • 설정 파일 - workbox-config.js
  1. workbox generateSW workbox-config.js
    서비스 워커가 생성되었음을 확인할 수 있다.

모든 이미지와 js 파일들을 service worker에서 들고 오기 때문에 PWA는 오프라인에서 작동이 가능하다.

Service Worker

  • 브라우저의 백그라운드 실행(javascript의 UI thread와 별도의 동작)
  • 네트워크 요청 가로채기 (캐시 안에 instance가 없으면 서버에 자원 요청) -> 프록시
  • 브라우저 종속 생명주기
  • notification 제공

서비스워커생명주기

PWA caching

Application tap의 cache storage

  • 프리캐싱
    : 웹 애플리케이션 접속 전 미리 캐싱

  • 런타임 캐싱
    : 발생하는 요청에 대해 캐시 스토리지 저장 - 정규식 사용하여 어떤 파일 패턴을 받을 것인지, 어떤 것들에 대해서 무조건 캐시로 받을 것인지 등등의 전략이 필요

캐싱 전략

+ Recent posts