일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- java
- DICTIONARY
- reflection
- URL
- 가장 가까운 단어
- CPU bound
- 십진수 이진수 전환
- green thread
- TCP/IP
- 문자열
- springMVC
- Split
- 동시성문제
- IO bound
- CPU
- dns
- 크기가 작은 부분 문자열
- annotation
- stack
- Queue
- deque
- http
- port
- 문자열 내마음대로 정렬하기
- frontPattern
- 2차원 배열 출력
- 프로그래머스
- 코딩테스트
- Spring
- process
- Today
- Total
목록전체 글 (50)
아무나개발하자
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(participant, completion): answer = '' check = dict() for elem in completion: if elem not in check: check[elem] = 1 else: check[elem] += 1 for elem in participant: if elem in check: check[..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 """ 문제해결방벙 1. 최소공배수 -> 두수의 곱 // 최대 공약수 2. 최대 공약수 구하는 함수 생성하기 """ def GCD(big, small): if big % small == 0: return small else: return GCD(small, big % small) def LCM(num1, num2, gcd): return (num1 * num2 // gcd) def so..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 """ 문제해결방법 1. 중복을 검사하는 리스트 한개 생성 2. 몇번째 사람인지 -> for문 i % n + 1 3. 몇번째 차례인지 -> for문 i // n + 1 3. 앞단어의 마지막 글자가 그 다음단어의 첫글짜와 동일한지 여부 확인, 중복여부 확인 """ def solution(n, words): answer = [] same_thing = [] for i in range(len..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 처음에 이렇게 풀었다. 근데 maxlen을 사용하지 않고 밑에서 다시 풀어품 """ 문제 풀이 방법 1. 캐시를 queue형태로 만든다. 2. 캐시에 hit하면 해당 원소를 remove하고 다시 append를 해준다. 3. 캐시에 hit를 하지 못했을 경우 해당 선입선출 후 다음 원소를 삽입 (deque maxlen) """ from collections import deque d..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫번째 내가 그냥 생각하고 한 풀이 ''' 문제 풀이 방법 1. str_dic를 하나 생성한다. 2. strings를 for문 돌면서 n번째 인덱스에 해당하는 값을 key, 문자열 value를 str_dic에 넣어준다. 3. 만약 n 인덱스가 겹치면, 해당 value를 비교해서 "먼저나오는 값,뒤에나오는값" 이런형식으로 ","를 기준으로 넣어준다. 4. str_dic를 key값을 기준으..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d00ZT3/btrWp0pge37/ZggCZFoVjdlJN6iDm49onk/img.png)
영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 때문에 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구하게 저장하여 영속성 부여한다. Persistence Framework 지속성 프레임워크(Persistence Framework)는 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이다. 지속성 프레임워크를 사용하면 JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있으며 안정적인 구동도 보장한다. Persisten..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beun44/btrVWyn2Cq8/k5bN6uSA2fNs01I7JTXh01/img.png)
멀티 스레드 동시성 문제를 보여주기 위해 코드를 작성해 보았다. Counter class Counter{ private int state = 0; public void increment(){ state++; } public void get(){ System.out.println("현재 상태는 : " + state + "입니다."); } } state라는 전역변수를 공유해서 사용할때의 문제를 보여주기 위해 작성을 했다. increment() 메소드는 state를 +1해주는 메소드이다. MyThread1 class MyThread1 extends Thread{ Counter counter; public MyThread1(Counter counter) { this.counter = counter; } @Ove..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 """ 문제 해결 방법 1. dic를 하나 생성 -> key : 해당 단어 value : 위치 2. s를 돌면서 dic에 없으면 answer -1 and dic에 추가, dic에 있으면 answer (현재 위치 - 해당 단어위치) and dic에 추가 """ def solution(s): answer = [] s_list = list(map(str, s)) wordAndLocation..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/0WzfM/btrVZ22mIJU/kiTmf1yqetxI0p3HfViJpk/img.png)
개념 정리 CPU : 프로세스의 명령어를 해석하고 실행하는 장치 IO : 파일을 읽고 쓰거나 네트워크 어딘가와 데이터를 주고 받는것, 입출력 장치와 데이터를 주고 받는것 Burst : 어떤 현상이 짧은 시간안에 집중적으로 일어나는 일 CPU Burst : 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간 IO Burst : 프로세스가 IO작업을 요청하고 결과를 기다리는 시간 프로세스의 인생은 CPU Burst와 IO Burst의 연속이다. 여기서 일반적으로 연산이 많이 필요한 로직은 CPU bound, 로컬 파일 시스템 혹은 네트워크 통신이 많은 로직은 I/O bound라고 한다. CPU bound 프로세스 - CPU 버스트가 많은 프로세스 동영상 편집 프로그램, 머신러닝 프로그램 IO bound 프..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/IY7c6/btrV0rUVRXD/pN92WY8qoODFzTpYgrmJm1/img.png)
개념 알고 가자 : 하나의 프로세스안에는 하나 이상의 스레드를 가진다. 이유는 스레드가 CPU에서의 실행 단위이기 때문이다. 그럼 컨텍스트 스위칭이 왜 필요한가??? - 단순하다. 여러 프로세스 OR 스레드를 실행시키고 싶어서 하는거다. 그럼 컨텍스트 스위칭은 언제 발생하는가??? - 주어진 time slice(quantum)을 다 사용했거나, IO작업을 해야하거나, 우선순위등등으로 발생을 하게된다. 멀티 태스킹 : 여러개의 프로세스나 스레드를 아주 작은 시간(quantum)으로 나눠서 실행을 하는것을 말한다. 그래서 사용자 입장에서는 여러프로그램이 마치 동시에 실행되는 듯한 느낌을 받는다. 그럼 컨텍스트 스위칭은 누구에 의해 실행되는가??? - OS 커널에 의해 컨텍스트 스위칭이 일어나게 된다. 컨텍스..