[프로그래머스] Lv.2 뉴스 클러스터링
2023. 2. 9. 12:56
Algorithm
문제 이해 : 5분 문제 풀이 : 45분 틀린 풀이 def solution(str1, str2): str1 = chk_ascii(str1) str2 = chk_ascii(str2) str_1,str_2 = [],[] for i in range(len(str1)-1): str_1.append(str1[i:i+2]) for i in range(len(str2)-1): str_2.append(str2[i:i+2]) str_1_temp = str_1.copy() str_2_temp = str_2.copy() str_1_result = str_1.copy() #교집합 inter = set(str_1) & set(str_2) print(inter) #합집합 for i in str_2_temp: if i not in..
[프로그래머스] Lv.2 튜플
2023. 2. 9. 12:42
Algorithm
문제 이해 시간 : 19분;; (이렇게 오래 걸린적은 처음이었다;;) 풀이 시간 : 45분; 결과 : 못품 틀린 풀이(중도 포기) def solution(s): stack = [] for i in range(len(s)): if s[i] == '{': tmp = [] tmp_s = '' elif s[i].isdigit(): tmp_s += s[i] elif s[i] == '}': stack.append(tmp) elif s[i] == ','and s[i-1] != '}': tmp.append(int(tmp_s)) stack.pop() stack.sort(key=len) answer = [] print(stack) for i in range(len(stack)): answer.append(stack[i][..
일급 컬렉션이란?
2023. 2. 1. 15:07
Spring
Collection 객체를 감싸면서 ,감싼 컬렉션 외의 다른 멤버 변수가 없는 클래스 이게 무슨 의미일까? Collection 객체를 감싼다는 것은 다음과 같다. public class Menu { private final String serialNumber; private final String menuName; private final int price; public Menu(String serialNumber, String menuName, int price) { this.serialNumber = serialNumber; this.menuName = menuName; this.price = price; } //... } Menu 클래스를 Menus라는 클래스에 담는다. public class Me..
[백준 #1309 파이썬] 동물원
2023. 1. 27. 17:50
Algorithm
DP의 기본을 알게 해주는 문제이자 생각하는 방법에 전환을 가져다 주는 문제 솔직히 구현보다는 생각하는 방법에 초점이 맞춰져 있다. 누구나 이런 문제는 노가다로 생각을 시작한다. 0일 때 1, 1일 때 3, 2일 때 7, 3일때 17, 4일때는 예시에서 41이라고 했은니 이렇게 되어있는 걸 볼 수 있다. 생각한 내용들 1 . 쪼개서 규칙성 찾아보기(지양) n = 1 아무것도 놓지 않는 경우 1 + 한개씩 놓는 경우 : 2 n = 2 아무것도 놓지 않는 경우 1 + 한개씩 놓는 경우 : 2*n + 두개씩 놓는 경우 : 2 n = 3 아무것도 놓지 않는 경우 1 + 한개씩 놓는 경우 2*n + 두개씩 놓는 경우 : 그림으로 노가다 + 세개씩 놓는 경우 : 2 이렇게 생각해보며 고정적으로 연산이 되는 부분을 ..
OSI 7 layer
2023. 1. 25. 17:16
CS
Application layer(L7) 응용 프로세스를 직접 사용해 일반적인 응용 서비스를 수행한다. HTTP, FTP, DNS, SMTP와 같은 프로토콜이 속한 계층 웹서버는 HTTP 프로토콜을 사용해 html 데이터를 클라이언트에 제공한다. 그 래서 APache, Nginx와 같은 웹서버도 이 계층에서 작동한다. Presentation layer(L6) 데이터의 변환, 압축 암호화가 이루어지는 계층 (JPEG, MPEG 등) 파일 인코딩, 명령어를 포장, 압축, 암호화한다. 서로 다른 통신 기기간에 다른 인코딩을 사용하기 대문에 데이터 변환이 이곳에서 이루어진다. Session layer(L5) 세션을 열고 닫고를 제공하는 메커니즘의 계층 (API, Socket) 세션 복구도 지원한다. 체크포인트를 ..

동적 계획법(Dynamic Programming) 에 대한 이해
2023. 1. 13. 15:49
Algorithm
Dynamic Programming, 하나의 복잡한 문제를 여러 개의 문제로 나누어 해결하는 방법 실행 시간을 줄이기 위해 같은 연산은 반복하지 않고 작은 결과를 바탕으로 규칙을 찾아 점차 큰 결과를 찾는 방법이다. 특징 동적 계획법은 재귀와 유사하다는 생각을 많이 하게 된다. 하지만 재귀 방식은 작은 연산을 반복한다. 그래서 같은 정답 결과를 여러번 연산으로 반복해서 다시 도출하기 때문에 비효율적이다. 그리고 큰 문제를 해결하기 위해서 작게 쪼개서 문제를 해결하는 분할 정복과 비슷하다. 하지만 이 또한 반복을 처리하는 과정에서 중복 여부를 처리하는 과정에서 차이가 있다. 이 차이점을 알아야 dp유형의 문제를 풀 때 보다 확고한 생각을 가지고 문제를 해결하려고 할 수 있다. dp 와의 차이를 꼭 인지해 ..
DP 풀이 팁!
2023. 1. 6. 11:44
Algorithm
1. 규칙성 찾기 규칙성은 우리가 일반적으로 생각하는 규칙성이 아니다. 상식적으로 구분해보지 않았던 규칙성이 나타날 수도 있다. 물론 점화식을 찾는 건 맞지만 수학적으로 생각하는 방법 + 프로그래밍적으로 생각하는 방법이 모두 필요하다. 2. dp 테이블 초기화 dp 테이블은 어떤 방식으로도 초기화 될 수 있다. 모두 0 으로 ,모두 1로, 입력받는 숫자 그대로도 그대로 가능하니, 이런 점들에 유의하자. dp 테이블은 1차원, 혹은 2차원, 3차원으로도 모두 구현이 가능하다. 그러니 이런 부분들을 유의하면서 풀어보자 3. 변화를 감지, 변화를 기록하는 방법 어느 지점에서 변화가 일어나는 지 파악한다. 그리고 단계마다 그 지점에서 최선의 비교가 되는 상태인 지 살펴봐야 한다.(냅색에서 특히 중요) 그리고 그..
hashCode() 와 equals() 메서드
2023. 1. 4. 15:26
Java
equals() 매개변수로 객체의 참조변수를 받아 비교해 그 결과를 boolean으로 알려준다. 기본적으로 2개의 객체가 동일한 지 검사하기 위해 사용한다. Person p1 = new Person(7); Person p2 = new Person(13); p1.equals(p2) 이 결과는 false다. 객체를 생성할 때 메모리의 비어있는 공간을 찾아 생성하기 때문에 서로 다른 두 개의 객체가 같은 주소를 갖는 일은 있을 수 없다. 하지만 p1 = p2 p1.equals(p2) 이 결과는 참이 된다. 두 개 이상의 참조변수가 같은 주소값을 같는 것은 가능하다. (p1, p2가 하나의 주소값을 가지고 있음) 그래서 v2의 주소 값을 v1이 가지게 되어 동일하다는 결과를 갖게 된다. equals 메소드는 O..