분류 전체보기(343)
-
str형식의 list화 / 프로그래머스 정수 내림차순으로 배치하기 (level1)
List와 String 프로그래머스의 정수 내림차순으로 배치하기 문제를 풀다 알아낸 사실 def solution(n): # arr = sorted(list(str(n)), reverse = True) arr = sorted(str(n), reverse = True) return int(''.join(arr)) n = 8421523 print(solution(n)) 위 코드 2번째 줄에서, 자연수n을 str()로 문자열로 만든 후, list()를 한번 더 감싸줬는데 그럴 필요가 없다. str()로 묶기만 해도, 리스트 처럼 sorted()나 인덱싱, 슬라이싱 등이 가능해진다. 리스트와 문자열은 유사하며 서로 변환이 가능하다 # 알아두면 좋은 꿀팁 list = str.split( ) #문자열에..
2020.11.09 -
call by reference, call by value
알아야 할 개념 기본 자료형 해당 변수의 값을 복사해서 전달한다. 참조 자료형 해당 변수가 가진 값이 레퍼런스이므로, 인자로 넘길 때 call by value에 의해 변수가 가진 레퍼런스가 복사되어 전달된다. Call by reference vs Call by value (공통) 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다 Call by Value (값에 의한 호출) 함수 호출 시, 인자로 사용되는 변수의 '값'을 복사하여 인자로 전달한다. 함수 안에서 인자의 값이 변경되도, 함수 외부의 변수 값은 변경되지 않는다 (함수 내부 외부 차단된 느낌) Call by Reference (주소에 의한 호출) 함수 호출 시, 인자로 사용되는 변수의 '레퍼런스(주소)'을 복사하여..
2020.11.09 -
클래스, 객체 , 인스턴스 개념
클래스(class) 객체를 만들어내기 위한 설계도, 틀 연관된 변수와 메서드의 집합 객체(object) 소프트웨어 상에 구현할 대상 클래스라는 '설계도, 틀'에서 선언된 모양으로 생성된 실체 모든 객체는 클래스로부터 생성된다. 인스턴스(instance) 클래스를 바탕으로 소프트웨어에 구현된 '변수'와 '기능'의 집합 (구체적 실체) 즉, 객체를 소프트웨어에 실체화 하면 '인스턴스'라 칭함 => 인스턴스 ⊂ 객체 (인스턴스를 포함) 고유한 상태를 가지기 위해 존재, 속성(멤버 변수)과 기능(메서드)이라 생각하자 객체 vs 인스턴스 클래스의 타입으로 선언됐을 때 객체라 부르고, 해당 객체가 메모리에 할당되어 실제로 사용될 때 인스턴스라 부른다. (하지만 엄격하게 객체와 인스턴스를 나누긴 어렵다.) // cl..
2020.11.09 -
[Nomad coders] React - JSX, props
*foodILike array는 맨 밑에 첨부 함수형 컴포넌트와 클래스형 컴포넌트 구분 : return과 render array를 iter할 때 map()메서드를 사용 props의 타입 체크는 propTypes 메서드 사용 state를 직접 변경하면 render 호출에 문제 생기기 때문에, setState()를 사용하여 state를(데이터를) 변경해준다 class App extends Component { render() { return ( {/* map함수가 없었다면, 일일이 foodILike의 원소들을 기입해야한다.*/} {foodILike.map(dish => ( ))} ); } } 여기서, dish는 임의로 지은 이름으로, foodILike 배열의 각 element를 한 번씩 방문하는 object..
2020.11.08 -
heapq 모듈 (heapq.heapify(), heapq.heappop(), heapq.heappush())
heap 모듈 프로그래머스의 야근지수 문제를 풀던 중 힙 정렬의 시간복잡도를 생각하게 됐습니다. heap 모듈을 우선 호출합니다. import heapq heapify() 아래는 works라는 리스트를 힙 구조로 바꿔주는 코드입니다. 이때 heapify()는 O(n)만큼의 시간복잡도가 요구됩니다. 파이썬의 힙구조는 기본적으로 최소 힙 형태입니다. works = [3,4,3] heapq.heapify(works) 주의 할 점은, works는 이미 리스트 형태인 객체를 heap배열로 바꾸는 것이기 때문에 O(n)의 시간복잡도가 소요됩니다. 위와 달리, 빈 리스트를 대상으로 힙 구조화를 할 시엔 아래와 같습니다. heapq.heappush() , heapq.heappop() works2 = [] heapq.h..
2020.10.30 -
ls / cd 커맨드 고급 사용법
cd .. : 상위 디렉토리로 슝 cd / : 루트 디렉토리로 슝 cd - : 방금 전 디렉토리로 슝 cd ~ : 홈 디렉토리로 슝 pwd : 자신의 경로 보여줌 (Pring Working Directory) ls : pwd와 비슷,,한줄 알았지만, ls는 list라는 뜻으로, 현재 디렉토리의 파일들을 리스트처럼 보여준다. (pwd는 경로) ls : list ls -l : long listing의 약자로, 파일의 상세보기 역할을 제공 (파일 생성날짜, 이름 등) ls -a : 디렉토리 내의 숨겨진 파일, 예를 들어 .git같은 설정 파일은 ls만으로는 보이지 않지만, -a 설정인자를 주면 확인할 수 있다. - 같은 맥락의 커맨드 ls -al ls -a -l : 숨겨진 파일들 까지 모두 롱 리스팅 형식으로..
2020.10.28 -
[201018] 프로그래머스 기능개발
풀이 rest 리스트 가장 앞의 원소(기준 원소)와 뒤의 원소들을 비교 자신보다 크거나 같은게 나올 때 까지 계속 비교 (count += 1) 기준 원소보다 크거나 같은게 나오면, rest 리스트 슬라이싱 try ~ except 구문으로, IndexError 회피 progresses = [93,30,55] speeds = [1,30,5] import math def solution(progresses, speeds): rest = [math.ceil((100 - p)/s) for p,s in zip(progresses, speeds)] count, i = 1, 1 answer = [] while rest: try: if rest[0] >= rest[i]: count += 1 i += 1 else: res..
2020.10.20 -
[JS] What I learned today(200620)
보호되어 있는 글입니다.
2020.06.26 -
[JS] 유효범위, this 키워드,
아래 코드의 function declaration은 자바스크립트의 호이스팅에 해당된다. 함수가 먼저 호출된 후 선언되어도, 호이스팅 동작으로 무리없이 함수가 작동된다. // functions declaration calculateAge(1965); function calculateAge(year) { console.log(2022 - year); // } // this is hoisting // function expression retirement(1956); var retirement = function (year) { console.log(65 - (2016 - year)); } // Error occured: Type Error, 끌올이 안된다. // hoisting only works for f..
2020.06.23