Local 서버 구축 / 포트포워딩을 통한 외부접속하기
2021. 9. 20. 11:47
Server Program
❓Local 서버 모든 컴퓨터는 서버(Server)의 역할을 할 수 있는 능력을 가지고 있다. 로컬 서버 란 말 그대로 내 컴퓨터에서 프로젝트의 서버 환경을 구성한다는 의미이고, 이렇게 만든 서버를 특정 명령어로 실행할 수 있다. 당연히 서버를 어떤 환경으로 만들었는지에 따라 서버를 실행시키는 명령어가 달라진다. ❓IP & PORT 우리는 어떤 지점을 찾을 때 어떤 선택을 하는가? 예를 들어 홍대역을 찾아간다고 하자 대부분의 사람들은 홍대역의 주소를 찾아서 갈 것이다. 하지만 사실 홍대의 정확한 위치는 위도 경도 값으로 결정된다고 할 수 있다. 서버에서도 이것이 적용된다. IP주소란 Internet Protocal Address 즉 인터넷(컴퓨터)의 절대적 주소이다. 하지만 직관성 및 편의성 때문에 도메..
백준 알고리즘 파이썬(Python) 10773번 제로
2021. 9. 17. 19:30
Algorithm
📌 첫 번째 풀이 : 리스트의 pop을 이용한 풀이 # 리스트의 pop을 이용한 풀이 n = int(input()) arr = [] for i in range(n): arr.append(int(input())) while 0 in arr: for i in range(len(arr)): if arr[i] == 0: arr.pop(i) arr.pop(i-1) break print(sum(arr)) 첫 번째로 생각한 방법은 미리 리스트를 받아 놓고 처음부터 순차적으로 탐색한 뒤 0을 발견하면 그 자리와 그 앞자리를 pop 해줌으로써 리스트의 길이를 줄여나가는 방법이다. deque를 쓰고 싶었으나 deque에는 특정 인덱스를 pop 할 수 없어기에 일반 리스트 pop을 사용했다. 통과는 하였으나 시간이 3400..
리트코드(LeetCode) 1번 두 수의 합(Two Sum)
2021. 9. 17. 16:34
Algorithm
📌 풀이 1 : 브루트 포스 하나하나 다 때려 박아 비교하는 브루트 포스 방법이나 매우 널리 알려진 방법이나 시간이 매우 오래 걸린다. 리트코드 기준 4836 ms의 시간이 걸렸다. class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i] + nums[j] == target: return [i, j] 2중 for문으로 하나하나 비교하여 target과 같아지는 순간 인덱스들을 출력하면 된다. 📌 풀이 2 : 파이썬 내장 함수 in 사용 파이썬 내장함수 in을 사용하는 방법이다. 파이썬의 in함수는 시간 ..
JAVA(자바) 단위 테스트 실습 - 숫자야구게임 구현
2021. 9. 17. 14:28
JAVA with TDD, Clean Code
이 글은 자바지기(박재성)님의 강의를 개인적인 공부를 위해 정리한 글입니다. 우아한테크세미나_TDD 리팩토링 단위 테스트 실습 - 숫자야구게임 다음 요구사항을 JUnit을 활용해 단위 테스트 코드를 추가해 구현한다. 기능 요구사항 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 포볼 또는 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다. e.g. 상대방(컴퓨터)의 수가 425일 때, 123을 제시한 경우 : 1 스트라이크, 456을 제시한 경우 : 1 볼 1스트라이크, 789를 제시한 경우 : 낫싱 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게 임 ..
백준 알고리즘 파이썬(Python) 1764번 듣보잡
2021. 9. 15. 14:56
Algorithm
deque를 이용한 풀이 #deque를 썼으나 시간초과 import collections n, m = map(int, input().split()) d = collections.deque() b = collections.deque() db = collections.deque() for i in range(n+m): b.append(input()) for i in range(n): d.append(b.popleft()) for i in range(len(d)): if d[i] in b: db.append(d[i]) db = sorted(db) print(len(db)) for i in range(len(db)): print(db[i]) 우선 주어진 N과 M이 500,000 이하의 자연수로 컸기 때문에 li..