[Dev, Python] Firebase Realtime Database를 Python으로 다뤄보자
·
Dev/etc
서버 개발자가 아니거나, 간단한 사이드 프로젝트를 하는 입장에서 백엔드를 필요로 하는 상황이 굉장히 많이 발생한다. 이를 해결해 줄 것이 바로 Google의 Firebase인데, 지금 내가 서비스 운영 중인 명언 iOS 앱 또한 간단한 명언 데이터를 수집/제공해 줄 목적으로 Firebase의 Realtime Database 서비스를 이용 중이다. 이 앱의 Android OS는 동료 개발자가 운영하고 있는데, 현재는 서비스 앱 말고도 수집된 명언 데이터를 처리하는 간단한 앱 또한 이 친구가 만들어 둬 좀 더 수월한 데이터 처리를 돕고 있었다. 이 앱을 운영한 지가 어엿 4년 차가 돼 가는데, 둘 다 소프트웨어 공학적 지식이 불충분한 상태에서 시작했기에 디자인 패턴을 고려하지 않았고, 기능을 추가할수록 코드..
[BOJ, Python] 9663 - N-Queen ( with Backtracking )
·
PS (Problem Solving)
9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 퇴각 검색 알고리즘을 다룰 때 대표적으로 등장하는 문제다. 2차원 배열이 아닌 인덱스를 행, 요소를 열로 사용하는 1차원 배열을 활용하고, PyPy3로 제출해야만 시간초과 없이 AC를 받을 수 있다. n = int(input()) # 체스판, 0은 아직 놓이지 않음을 의미 map = [0] * n ans = 0 # 퀸을 놓을 수 있는지 판단하는 함수 def is_satisfy(x): for i in range(x): # 같은 열에 놓였는지, 대각선에 놓였는지(-> 절댓값으로 판..
[BOJ, Python] 입출력 정리
·
PS (Problem Solving)
1. 기본 PS를 할 때 기본적으로 사용되는 입출력이다. # 입력 # str, 문자열이 그대로 출력 a = input() # int, 문자열을 정수형으로 변경 a = int(input()) # list, 문자열을 문자(char) 리스트로 변경 a = list(input()) # list, 문자열을 공백으로 구분하여 문자열(str) 리스트로 변경 a = input().split() # list, 문자열을 공백을 구분하여 정수형 리스트로 변경 a = list(map(int, input().split)) # 복수 할당(공백을 구분하여 각각의 정수를 할당) a, b, c = map(int, input().split()) # 출력 # 기본 출력 print(a) # 배열을 "주어진 문자열"로 구분하여 합친 문자열로..