전체 글
-
Builder Pattern (생성 패턴)의 정의와 예제Computer Science 2021. 9. 21. 01:33
빌더 패턴은 객체의 생성과 관련된 디자인 패턴이다 빌더 패턴과 비교 가능한 예시는 점층적 생성자 패턴(Telescoping Constructor Pattern), 자바빈 패턴(JavaBeans Pattern)이 있다. 점층적 생성자 패턴 - Telescoping Constructor Pattern Pizza hawaiian = new Pizza("cross"); Pizza hawaiian = new Pizza("cross", "mild"); Pizza hawaiian = new Pizza("cross", "mild", "ham+pineapple"); // Dough, Sauce, Topping 필수 인자를 받는 생성자와 선택적 인자를 받는 생성자들을 객체가 생성될 수 있는 케이스 숫자대로 만들어 객체를 ..
-
GET Method는 URL을 256자 이하로 제한하지 않는다Web 2021. 9. 18. 17:35
HTTP Method를 정의하고, GET과 POST의 차이를 비교할 때 주로 등장하는 말인 'GET Method의 최대 길이(URI+Query String)는 최대 256자이다'라는 말은 사실이 아니다 하지만 많은 자료에서는 위와 같이 표기되어있고, 나도 자연스럽게 "GET Method 최대 길이는 256자"라고 생각하고 있던 것 같다 이전에 정말 길이 제한이 256자일까?라는 궁금증이 생겨서 찾아본 결과 웹 플랫폼에서는 공식적으로 URI길이에 제한을 두지 않고, Chrome 브라우저는 2MB의 길이로 제한(주소창 표시는 32kB)을 둔다고 한다. URI 길이 제한은 브라우저의 정책에 따라 다르다. 위의 세 사진만 봐도 Chrome, Internet Explorer, Firefox의 URL 제한이 다른 ..
-
TCL(Transaction Control Language) in MySQLComputer Science/Database 2021. 9. 17. 22:28
DBMS에서 사용할 수 있는 SQL Commands는 크게 DDL(Data Definition Launguage): 데이터베이스, 테이블을 제어 DML(Data Manipulation Launguage): 테이블 내 데이터의 검색/등록/삭제/갱신의 연산 제어 DCL(Data Control Launguage): 데이터베이스에 접근할 때의 권한을 제어 TCL(Transaction Control Launguage): 논리적 작업 단위인 트랜잭션에 관한 연산을 제어 로 나뉜다. 대표적인 RDBMS인 MySQL에서의 TCL 연산을 직접 수행해보고 이해해보자 TCL 연산 COMMIT: 트랜잭션 내의 변경 사항을 영속적으로 데이터베이스에 반영한다 ROLLBACK: SAVEPOINT 혹은 마지막 커밋 시점으로 데이터베..
-
[BOJ]백준 23030번: 후다닥을 이겨 츄르를 받자!(C++)/DijkstraProblem Solving/BOJ(백준) 2021. 9. 16. 00:14
https://www.acmicpc.net/problem/23030 23030번: 후다다닥을 이겨 츄르를 받자! 쿠기는 평소 지하철 최단 경로를 탐색하여 소요 시간을 알려주는 '후다다닥' 어플을 사용 중이다. 그러나 쿠기는 걸음이 너무 느려서 '후다다닥'이 알려주는 경로를 따라가면 항상 지하철이 떠 www.acmicpc.net 좌표가 아닌 지하철 (노선, 역)의 정보를 가진 다익스트라 문제 유형 실제 그래프에 더 가까우니까 사실 다익스트라의 취지(?)에 더 적합한 문제 유형 같당 노선의 역 개수를 입력받아 이차원 벡터를 만들어준 뒤 환승역이 있는 곳에는 이어지는 역에 대한 정보를 넣어주었다 역 사이의 거리는 일정하므로 역 번호의 차를 이용했고 다익스트라 풀이를 위해 해당 노선에 존재하는 환승역들에 대해 ..
-
[SWEA] 2383번: 점심 식사시간(C++)/Bitmask, SimulationProblem Solving/SWEA 2021. 9. 14. 09:48
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 계단의 수가 2개로 제한되어 있어서 비트마스킹을 이용해서 사람*계단에 매칭되는 경우의 수를 구해주었당 계단 입구에서 대기하는..
-
[SWEA] 5650번: 핀볼 게임(C++)/SimulationProblem Solving/SWEA 2021. 9. 14. 00:34
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo&categoryId=AWXRF8s6ezEDFAUo&categoryType=CODE&problemTitle=%EB%AA%A8%EC%9D%98&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음 코드가 계속 시간 초과가 나서 계속 고민했던 문제 장애물 블럭들에 대해서는 바뀔 방향들에 대해 배열을 만들어주고, 벽은..
-
[Programmers]위클리 챌린지 6주차: 복서 정렬하기(Python)/SortingProblem Solving/Programmers 2021. 9. 12. 13:11
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 파이썬의 람다를 이용해서 정렬을 간단하게 구현 파이썬의 sort함수는 C++과 다르게 기본적으로 stable sort를 지원한다 def solution(weights, head2head): answer = [] result=[[0, 0, weights[i], i+1] for i in range(len(weights))] for i..
-
[Programmers]다단계 칫솔 판매(Python)/TreeProblem Solving/Programmers 2021. 9. 12. 01:50
https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 새로 가입한 알고리즘 스터디에서 풀었던 문제 문자열을 이용한 저장을 구현할 때 딕셔너리를 사용하는게 많이 편해졌다 이 문제도 풀다풀다 코드가 엄청 길어졌지만 최종적으로는 엄청나게 짧아진 문제 이런 식으로 각 child는 모든 anscestor에게 수익을 분배하게 되는데, 각 노드가 얻게 되는 수익의 총합을 구하는 문제였다 트리를 제대로 이해하고 있으면 풀 ..