본문 바로가기

programming study

(889)
[드림코딩 by 엘리] JavaScript 기초 강의(1) (ES5+) 본 내용은 해당 강의 토대로 작성 console console.log('Hello World'); console: WEB API 중 하나 Appication Programming Interface Node.js , 브라우저에서 사용 가능 브라우저가 제공하는 함수 JavaScript의 공식사이트 developer.mozilla.org async vs defer header 태그에 script태그를 넣은 경우 parsing HTML blocked parsing HTML -> Page is ready fetching js / excuting js parsing HTML 사용자가 HTML 파일을 다운로드 받았을 때, 브라우저가 한 줄씩 분석한다. 그 후 이해한 것을 CSS와 병합해서 DOM 요소로 변환한다. 도..
[프로그래머스] 전화번호 목록 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 전화번호 목록 def solution(phone_book): answer = True # phone_book의 해시를 기록할 딕셔너리 phone_book_hash = {} # phone_book을 하나씩 접근하며 딕셔너리의 key로 기록 for numbers in phone_book: phone_book_hash[numbers] = 1 # phone_book_hash 기록 후 key 중에서 phone_book의 접두사가 되는 것이 있는 지 검사 for numbers in phone_book: # 접두사가 있는지 체크할 문자열 check = '' # 하나의 번호 문자열에서 딕셔너리에 key로 있는 지 검사 ..
[프로그래머스] 단속카메라 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 단속카메라 def solution(routes): # 카메라의 갯수 answer = 0 # 차량이 나간 지점을 기준으로 정렬 routes.sort(key=lambda x: x[1]) # 카메라 위치 초기화 (가장 작은 값으로) camera = -30001 # 경로를 하나씩 탐색하기 for i in range(len(routes)): # 카메라의 위치가 진입 지점보다 작은 경우 if camera < routes[i][0]: # 카메라의 갯수 +1 answer += 1 # 카메라의 최근 위치 갱신 camera = routes[i][1] return answer Comment 그리디 알고리즘 문제. 람다식을 사..
[프로그래머스] 더 맵게 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 import heapq # 더 맵게 def solution(scoville, K): # 최소힙으로 변환 heapq.heapify(scoville) # 섞은 횟수 cnt = 0 # 가장 작은 스코빌 지수가 K 이상이 될 때까지 실행 while scoville[0] < K: cnt += 1 # 가장 작은 스코빌 지수의 음식 first_scovile = heapq.heappop(scoville) # 두번째로 작은 스코빌 지수의 음식 second_scovile = heapq.heappop(scoville) # 두 음식 섞기 mix_scovile = first_scovile + (second_scovile * 2) #..
[프로그래머스] 짝지어 제거하기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 짝지어 제거하기 def solution(s): # 짝지어진 문자를 검사할 check 리스트 check = [] # s의 문자열 하나씩 접근 for x in s: # check가 비어있는 경우 문자 넣기 if not check: check.append(x) # check에 마지막으로 들어온 문자가 현재 접근한 문자와 같은경우 pop(짝이 맞는 경우) elif check[-1] == x: check.pop() # 짝이 맞지 않는경우 현재 문자를 넣기 else: check.append(x) # 모든 문자열을 검사후 check가 비어있으면 1, 비어있지 않으면 0 if not check: answer = 1 el..
[프로그래머스] 배달 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 배달 import heapq # 다익스트라 알고리즘 # 특정 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산 def dijkstra(start, road, distance): # 시작 마을에 대한 초기화(자기 자신은 거리가 0) distance[start] = 0 # 큐에 삽입 q = [] heapq.heappush(q, (0, start)) # 큐가 비어있지 않은 경우 계속 실행 while q: # 가장 최단 거리가 짧은 마을 대한 정보 꺼내기 dist, now = heapq.heappop(q) # 이미 처리된 것이라면 무시 if distance[now] < dist: continue # 거리 ..
[프로그래머스] 가장 큰 수 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 가장 큰 수 def solution(numbers): # 입력받은 숫자를 문자열화 str_numbers = list(map(str, numbers)) # 람다식을 사용하여 정렬 # 숫자가 문자열화 되어있으므로 한자리씩 해당하는 아스키 코드를 비교 # 아스키 코드가 큰 순서대로 오름차순으로 정렬 (default) # reverse=True를 넣음으로서 내림차순으로 정렬 str_numbers.sort(key=lambda x: x * 3, reverse=True) return str(''.join(str_numbers)) Comment 처음에는 입력 받은 numbers를 이용해서 순열을 만든 뒤, 만들어진 순열..
[프로그래머스] 최댓값과 최솟값 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 최댓값과 최솟값 def solution(s): # 공백을 기준으로 나누어 숫자 입력 numbers = s.split(' ') # 최솟값과 최댓값 구하기 max_num = -int(1e9) min_num = int(1e9) # 반복문으로 하나씩 탐색 for i in range(len(numbers)): num = int(numbers[i]) if num > max_num: max_num = num if num < min_num: min_num = num answer = str(min_num) + ' ' + str(max_num) return answer Comment 매우 간단한 문제. split 메소드와 ..