본문 바로가기

programming study

(889)
[프로그래머스] 베스트앨범 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 베스트 앨범 def solution(genres, plays): answer = [] # 주어진 곡의 갯수 song_ea = len(genres) # genres, plays의 정보를 필요한 형태로 저장할 딕셔너리 total_dic = {} # 곡의 갯수만큼 genres, plays의 각 인덱스에 접근하기 for i in range(song_ea): # total_dic의 key에 장르가 없는 경우 if genres[i] not in total_dic.keys(): # 새로운 key를 생성하고 하위 딕셔너리 만들기 # 하위 딕셔너리에 장르 별 총 재생수를 입력할 total key 생성 후 plays[i] ..
[프로그래머스] 땅따먹기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 땅따먹기 def solution(land): answer = 0 # land의 행 길이 land_len = len(land) # 주어진 2차원 리스트 land의 한 행씩 접근 # 다음 행의 해당 열에는 현재 행의 해당 열을 제외한 요소들 중 최댓값 구하기 # 그 이후, 다음 행의 해당 열의 값을 더한 후, 메모이제이션 (누적합) for i in range(land_len - 1): land[i + 1][0] = max(land[i][1], land[i][2], land[i][3]) + land[i + 1][0] land[i + 1][1] = max(land[i][0], land[i][2], land[i][..
[드림코딩 by 엘리] JavaScript 기초 강의(5) (ES5+) 본 내용은 해당 강의 토대로 작성 class와 object class 연관있는 데이터(변수, 함수)를 한 곳에 묶어놓는 컨테이너 속성(filed), 행동(method)로 이루어져 있다. class person { // filed name; age; // method speak(); } data class: filed만 들어있는 클래스 클래스 안에서 내부적으로 보여지는 변수와 밖에서 보일 수 있는 변수를 나누어 캡슐화 클래스를 이용하여 상속과 다양성이 일어날 수 있음 이런 모든 것이 일어나는 언어를 객체 지향 언어라고 한다. 사물과 물체를 class(object)로 정의해서 프로그래밍 하는 것이 편하고 유연하게 할 수 있다. class와 object class 붕어빵 틀과 같다. template decla..
[드림코딩 by 엘리] JavaScript 기초 강의(4) (ES5+) 본 내용은 해당 강의 토대로 작성 Procedual language 절차지향 언어 함수가 프로그램에서 중요한 기능을 담당 JavaScript는 class가 있지만, prototype을 베이스로하여서 객체지향 언어가 아니라 절차지향 언어이다. Function sub-program이라고도 부름 프로그램안에서 각각의 작은 단위의 기능을 실행 여러번 재사용이 가능 일을 수행하거나 값을 계산 프로그램을 구성하는 fundamental building block Input -> Output 함수의 이름을 보고 어떤 일을 할 지 추론할 수 있다. 전달하는 파라미터, 기대되는 리턴값을 보면서 어떤 수행을 하는지 알 수 있다. Function Declaration function name (param1, param2) {..
[드림코딩 by 엘리] JavaScript 기초 강의(3) (ES5+) 본 내용은 해당 강의 토대로 작성 variable rw(read/write) 읽고 쓰기가 가능한 것 값을 할당 변경 let Constant r(read only) 읽기만 가능 다른 값으로 바꾸기 불가능 const(Constant) Primitive vs. Object Primitive: 값 자체가 메모리에 저장 Object: 메모리에 저장되지 않고 reference를 가리킴(포인터) reference는 실제로 object가 담겨있는 메모리를 가리킴 const로 선언한 경우, 포인터가 잠기지만 object는 변경이 가능 Immutable vs. Mutable Immutable: 데이터 자체를 바꿀 수 없음 primitive types, frozen objects primitive의 경우, 특정한 문자열을 ..
[프로그래머스] JadenCase 문자열 만들기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # JadenCase 문자열 만들기 def solution(s): s_arr = s.split(' ') for i in range(len(s_arr)): s_arr[i] = s_arr[i].capitalize() return ' '.join(s_arr) Comment capitalize 내상 함수로 간단하게 풀 수 있었다. 가장 첫 글자의 알파벳을 대문자로 바꿔주는 함수인데, 주어진 s를 split을 사용해서 공백을 기준으로 나눈 뒤, 만들어진 문자열 리스트의 원소를 하나씩 접근하여 capitalize를 하여 첫문자만 대문자로 바꿔주도록 하였다. 그 이후에는 join으로 공백을 기준으로 문자열을 생성하도록 하..
[프로그래머스] 추석 트래픽 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 추석 트래픽 # 첫시간, 끝시간 각각으로부터 1초가 경과되었을 때 포함되는 로그 구하기 def get_cnt(time, lines_start_and_end): cnt = 0 start = time # 1초 경과 end = time + 1 # 시작시간과 끝시간이 있는 2차원 리스트 하나씩 접근 for start_and_end in lines_start_and_end: # 끝시간이 start보다 이후일 때는 포함 # 시작시간이 end보다 이전일 때도 포함 if start_and_end[1] >= start and start_and_end[0] < end: cnt += 1 return cnt def soluti..
[드림코딩 by 엘리] JavaScript 기초 강의(2) (ES5+) 본 내용은 해당 강의 토대로 작성 variable 변수: 변경될 수 있는 값 let ES6에서 추가된 변수 선언 키워드 Mutable var 그 이전에 사용하였던 변수 선언 키워드 사용하지 말 것 선언 전에 값을 할당한다거나, 출력할 수 있어 예상치 못한 오류 발생의 원인이 되기 쉬움(var hoisting) Block scope가 없음 let name = 'jaemin'; console.log(name); // jaemin 출력 name = 'siru'; console.log(name); // siru 출력 메모리: 애플리케이션마다 사용할 수 있는 메모리가 할당되어 있음 let을 사용해서 변수를 정의하게 되면 메모리 한 부분을 가르킬 수 있는 포인터가 생김 추후, 다른 값을 넣게 되면 다른 값을 저장할..