본문 바로가기

분류 전체보기

(172)
[알고리즘] 프로그래머스 방금그곡 / pyhton https://programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(m, musicinfos): dic = {} #사용되는 음이 아닌 문자로 변환 m = m.replace('C#','c').replace('D#','d').replace('F#','f').replace('G#','g').replace('A#','a') for info in musicinfos: #콤마를 기준으로 변수에 저장 start, end, title, music = info.spli..
💻 JAVA 객체와 클래스의 차이점 클래스란? 객체를 만들어 내기 위한 틀 객체란? 클래스의 인스턴스 키워드 public : 접근제한이 없음 protected : 해당 클래스 + 자식 클래스에서 접근 가능 default : 동일한 패키지 내에서만 접근 가능 private : 해당 클래스내에서만 접근 가능 JVM과 JAVA 프로그램 실행 과정 JVM이란 JAVS Virtual Machine(자바 가상 머신)의 약자 자바 프로그램을 자바 API를 기반으로 실행하는 역할 JAVA프로그램 실행과정 프로그램이 실행되면 JVM이 OS로부터 해당 프로그램이 필요로 하는 메모리를 할당 받음 자바 바이트코드로 변환된(.class) 파일을 class로더를 통해 JVM에 로딩함 로딩된 class파일은 excution engine을 통해..
[알고리즘] 프로그래머스 탑 / python https://programmers.co.kr/learn/courses/30/lessons/42588 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(heights): answer = [0] * len(heights) heights = heights[::-1] for i in range(len(heights)): for j in range(i+1, len(heights)): if heights[j] > heights[i]: answer[i] = len(heights)-j break return answer[::-1] 더 간결하게 푼 ..
[알고리즘] 프로그래머스 카펫 / python, 완탐 https://programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(brown, red): answer = [] for col in range(1, red+1): if red % col == 0: row = red // col print(row,col) if (row + 2) * (col + 2) - red == brown: answer.append(row + 2) answer.append(col + 2) break return answer answer..
💻 CS 개념 정리 OS 프로세스와 스레드 차이 프로세스는 운영체제로부터 자원을 할당받아 실행하고, 스레드는 프로세스로부터 자원을 할당받아 실행 하나의 프로세스 안에서 여러 스레드 생성 가능 각 스레드는 개별 스택을 가지고, 프로세스의 전역 메모리 공간을 공유하며 프로그램을 실행 프로세스는 코드/데이터/스택/힙 메모리 기반으로 실행 스레드는 프로세스 안에서 개별적인 스택을 가지고 코드/데이터/힙 영역을 공유하며 실행 deadlock 둘 이상의 프로세스가 서로가 가진 자원을 요구하면서 각자의 자원을 놓지 않아서 더이상 작업을 수행할 수 없이 무한 대기 상태 해결 방법 Prevention : 자원이 어떻게 할당되건간에 데드락이 발생할 수 없는 구조로 만듬 Detection and Recovery : 데드락이 발생할 경우를 찾아..
[알고리즘] 프로그래머스 네트워크 / python, dfs https://programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, computers): answer = 0 visit = [0] * n def dfs(computers, visit, s): stack = [s] while stack: temp = stack.pop() visit[temp] = 1 for i in range(len(visit)): if computers[temp][i] == 1 and visit[i] == 0: stack.appen..
[알고리즘] 프로그래머스 실패율 / python https://programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(N, stages): fail = {} clear = len(stages) for i in range(1, N+1): if clear != 0: count = stages.count(i) fail[i] = count / clear clear -= count else: fail[i] = 0 return sorted(fail, key=lambda x : fail[x], reverse=True)
[알고리즘] 프로그래머스 오픈채팅방 / python https://programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def message(lst, dic): if lst[0] == 'Enter': return dic[lst[1]] + "님이 들어왔습니다." elif lst[0] == 'Leave': return dic[lst[1]] + "님이 나갔습니다." def solution(record): answer = [] dic = {} lst = [list(i.split(' ')) for i in record] for i in..