분류 전체보기

소프트웨어 아키텍쳐 1) 모듈화 시스템의 기능을 모듈 단위로 나누는 것 2) 추상화 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것 3) 단계적 분해 문제를 상위의 중요 개념으로부터 하위의 개념으로 구체화 시키는 분할 기법 4) 정보은닉 모듈 내부에 포함된 절차와 자료들의 정보가 갖추어져 다른 모듈이 접근하거나 번경하기 못하도록 하는 기법 5) 상위 설계와 하위 설계 - 상위 설계 : 아키텍처 설계, 예비 설계 (구조, DB, 인터페이스) - 하위 설계 : 모듈 설계, 상세 설계 (컴포넌트, 자료구조, 알고리즘) 6) 설계 과정 설계 목표 설정 -> 시스템 타입 결정 -> 아키텍쳐 패턴 적용 -> 서브 시스템 구체화 -> 검토 7) 협약에 의한 설계 컴포넌트를 설계할 ..
·Algorithm (PS)
웹 서버의 기능 HTTP/HTTPS : 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 통신기록 : 처리한 요청들을 로그 파일로 기록하는 기능 정적 파일 관리 : HTML/CSS/이미지 등의 정적 파일들을 저장하고 관리하는 기능 대역폭 제한 : 네트워크 트래픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 가상 호스팅 : 하나의 서버로 여러개의 도메인 이름을 연결하는 기능 인증 : 사용자가 합법적인 사용자인지를 확인하는 기능
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/92342 양궁을 어떻게 쏠지 여러가지 경우가 나올 텐데 이를 queue에 저장했다가 bfs내에서 현재 과녘을 라이언이 쏘는 경우와 쏘지 않는 경우 각각을 모두 queue에 push 해주었다 . -> 이 방법을 통해서 과녘을 쏘는 경우의 수들을 탐색하고, while문이 종료되는 조건들을 통해서 max_gap을 갱신한다. queue = deque([(0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])]) # count, arrow queue에 현재 과녘과 화살을 쏜 기록인 (count, arrow)를 초기화하여 push한다. if sum(arrow) == n: # while 문 종료 ry..
·Algorithm (PS)
https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 집합을 합친다고 해서 처음엔 단순하게 배열과 배열을 합쳤는데, 이렇게 하면 시간초과가 난다 ! 그래서 찾은 방법이 union-find로 배열과 배열을 합칠 때, 부모 노드 (root node)를 이용해서 부모 노드가 더 작은 쪽으로 가게끔 합쳤다 그리고 각각의 원소가 하나의 집합에 속하는지 확인할 때는 부모노드가 동일한지만 확인해주면 되니까 더 효율적으로 ..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 효율성!! 을 보는 문제여서 당연히 브루트포스는 아닐거란 예상은 했지만 그래도 꼭 하지말라고 하면 하고 싶은 법 나만 그래?????? def solution(board, skill): answer = 0 def attack(a, b, c, d, degree): for i in range(a, c+1): for j in range(b, d+1): board[i][j] -= degree def sav..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr mbti 점수 계산하는 재미있는 문제이다 처음에 놓친 부분은 매우 비동의가 3점으로 들어가야 하는데 이걸 1점으로 거꾸로 계산했다 레벨 1의 구현문제이다 def solution(survey, choices): answer = '' n = len(choices) type = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0} score = [0, ..
·Algorithm (PS)
https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 계란치는_법_jpg 2번 과정에서 백트래킹으로 풀어야겠다고 캐치를 할 수 있었다 손에 들고 있는 계란으로 다른 계란 중 하나를 치는데 그게 뭐 바로 옆에 있는 계란일 수도 있고 아닐 수 도 있음 -> 백트래킹 사용해서 계란을 쳤다가 계란을 치기 전으로 다시 back해서 문제를 풀어가야 한다 # https://www.acmicpc.net/problem/16987 n = int(inpu..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어려운 문제는 아니지만.. 구현하는데 시간이 1시간정도 걸렸다 흑흑 조건에 따라서 열심히 구현해주면 된다.. 시간 계산할때는 분 먼저 계산하고 시간을 계산하는식으로 했다 이거 이번에 카카오 블라인드에 나왔는데 기억하면 좋을 것 같다 그리고 defaultdict 를 사용하니깐 딕셔너리에 key가 없고 처음일 때도 += 연산자를 사용할 수 있어서 미리 딕셔너리 에러를 피할 수 있다 from colle..
minjiwoo
'분류 전체보기' 카테고리의 글 목록 (52 Page)