728x90

분류 전체보기 151

파이썬 비트마스크

백준 11723 집합 문제를 풀던 중... 예제는 맞게 구현했는데 제출해보니 오잉 메모리초과?! import sys m = int(sys.stdin.readline()) s = [] for _ in range(m): arr = list(sys.stdin.readline().split()) if arr[0] == 'add': if arr[1] not in s: s.append(arr[1]) elif arr[0] =='remove': if arr[1] in s: s.remove(arr[1]) elif arr[0] =='check': if arr[1] in s: print(1) if arr[1] not in s: print(0) elif arr[0]=='toggle': if arr[1] in s: s.remo..

카테고리 없음 2023.09.28

원티드프리온보딩 9월

4. 발음하기 쉬운 걸 사용하라 5. 검색하기 쉬운 걸 사용하라(로그 검색 필요) 6. 타입과 관련된 문자열X( ex. String, object…) 예외: 인터페이스클래스(Factory)와 구현클래스(FactoryImp) 7. 한 개념에 한 단어를 사용하라 8. 의미있는 맥락을 추가하라 (addr+~) 9. 불필요한 맥락을 없애라(의미 없는 접두사x, 의미전달이 안되는 짧은 변수명보다 명확하게 전달되는 긴 변수명) Function; 한 가지만 하자 작게 만들어라 한 함수 다음에는 추상화 단계가 한단계 낮아지도록? -> 이게 무슨말이야 한단계 내려갈수록 구체화? 이미지 참고 solid 이야기… switch문 쓸때 주의? 함수의 인수 종류와 개수 인수는 input으로 인식… 그렇기에 output역할을 하는..

카테고리 없음 2023.09.05

유클리드 호제법

알고리즘 문제에서 최대공약수 또는 최소공배수 관련된 문제가 나오면 유클리드 호제법을 사용해야 한다. 유클리드 호제법이란... 최대공약수를 구하는 방법 두 정수 a와 b의 최대공약수(gcd)를 구하는 경우: a를 b로 나눕니다. 나눈 나머지를 r에 저장 r이 0이면, b가 최대 공약수 r이 0이 아니면, a를 b로, b를 r로 대체하고, 다시 1번 단계로 r이 0이 될 때까지 1번과 2번을 반복합니다. 예시) 24와 18의 최대공약수 구하기 a=24 b=18 24/18 = 몫:1 나머지(r):6 r이 0이 아니기 때문에 a = b로 b = r a=18 b=6 18/6 = 몫:3 나머지(r):0 r이 0이기 때문에 현재 b값, 6이 최대공약수이다. 참고로 나는 꼭 a>b 여야 하는 줄 알았는데 크기는 상관없..

[1]RESTful Web Services with Spring Framework

postman을 활용하면 http request를 만들고, response를 검사하는 과정이 훨씬 쉽고 빨라진다. 우리의 웹서비스 api 엔드포인트를 테스트 하기 위해 모바일앱이나 웹페이지 인터페이스가 필요없다. 쉽게말해서 RESTful 웹을 만들고 테스트 하는 과정을 편리하게 도와준다. Postman은 무료, 공홈에서 다운 가능 회원가입&로그인으로 기록이 남아 다른 환경에서도 사용 가능 편리 postman 기능설명 URL과 URI - URL: (프로토콜 포함) http + www ~ - URI: /api/users/?start=1&limit=50 Traditional REST GET /GetUserDetailsServlet?userId=1 GET /users/1 GET /DeleteUserDetails..

web 2023.08.20

DP 다이나믹 프로그래밍

작은문제로 쪼개서 -> 값을 재활용하기 DP를 사용하면 재귀나 완전탐색보다 효율적으로 문제를 풀 수 있다 ex) 피보나치의 경우... f(n) = f(n-1)+f(n-2) 재귀 사용시 복잡도: O(n^2) dp 사용시 복잡도: O(n) dp를 사용할수 있는 조건 1. 큰 문제를 작은 문제들로 나눌 수 있는가(동일한 작은문제들이 반복) 2. 작은 부분 문제의 값이 그것을 포함하는 큰 문제에서도 동일한가 dp에서 중요한것 - 점화식세우기 - memoization: 앞에서 계산한 값을 배열에 저장했다가 필요할 때 재사용 구현방법 top down bottom up

원티드프리온보딩 - 도커1

원티드 프리온보딩 챌린지 백엔드 주제는 도커 @@@공식 문서 많이 참고하기@@@ https://docs.docker.com/ Docker Docs: How to build, share, and run applications docs.docker.com [1강] 컨테이너 기술에 대해 알아보고 Docker의 기본 개념과 사용법에 대해 알아보자 Docker 란? 컨테이너 기반 가상화 도구 -> 리눅스 컨테이너 기술인 LXC 기반 어플리케이션을 인프라에서 분리해줌 인프라를 어플리케이션 관리하듯 관리할 수 있음 신속함 컨테이너란? 가상화 기술 중 하나 호스트 운영체제 위에 여러개의 격리된 환경 생성 각각의 컨테이너 안에서 애플리케이션 실행 리눅스 커널의 기능을 사용하여 만들어짐 도커에서 사용하는 기술... 하이퍼..

카테고리 없음 2023.08.01

#2178 미로탐색

백준 #2178 미로탐색 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 처음짠코드 BFS로 1인 칸들을 큐를 활용하여 너비우선 탐색 구현에는 성공했으나... 그냥 순서대로 길을 탐색하기만 했고 그 중 최종 위치까지의 최단경로를 찾는 방법을 몰랐다! count로 +1 하다보니 그냥 갈수있는 칸, 1의 갯수가 나왔다 정답 이전 코드에서는 check를 단지 이전에 방문한 적 있는지 없는지를 알아내는데 사용했는데 여기선 용도를 바꿨다. check 일단 0으로..

728x90