Programming Languages 8

[Python] Python3와 PyPy3의 차이

알고리즘 문제를 풀다 똑같은 코드인데도 Python3로 제출했을 때는 2832ms가 걸리던 것이, PyPy3로 제출했을 땐 472ms가 걸린 것을 본 나 ..똑같은 파이썬 언어인데 왜 저렇게 시간복잡도에서 미친 효율을 보이는걸까? 🤔 Python3와 PyPy3의 차이파이썬은 쉽고 직관적인 문법 덕분에 사용하기 쉬운 언어로 잘 알려져 있다. 덕분에 최근 몇 년동안 꾸준한 상승세를 보여왔고, 대표적인 프로그래밍 언어인 C와 Java의 점유율을 끈질기게 추격해왔다. 언어별 인기도 지수를 나타내는 티오베 지수에 따르면 지난 2021년 10월에는 파이썬이 결국 이 둘을 앞지르고 1위에 등극했다.하지만 파이썬은 속도가 느린 언어라고 평가받기도 한다. 이를 해결하기 위해 다양한 시도를 해왔고, 이 과정에서 등장한 ..

[Python] zip과 dict로 리스트 2개 딕셔너리로 매핑하기 (feat. for문 탈출)

들어가며파이썬의 swapcase 메서드에 이어.. 알고리즘 문제를 풀다 얼떨결에 알게 된 zip 메서드, 이건 모두 알아야해!!!!!! 마음으로 포스팅해보려고 한다.솔직히 이거 찾고 이굥진 인생 한정 2024 올해의 발견상 주고 싶었다. 예제여기 같은 길이의 리스트 2개가 있다고 가정해보자. 이 리스트는 4명의 이름에 대한 리스트와, 그 이름에 맞는 점수 리스트다. name = ["karina", "winter", "ningning", "zizel"]score = [5, 10, 1, 3] 이 두 리스트를, 한 개의 딕셔너리로 매핑하려고 한다.평소의 나는 for문으로 매핑하는 방법을 선택해서이렇게 하거나,혹은이렇게 했을 것. 이런 약 3줄의 코드를 zip, dict 메서드를 쓰면 단 한 줄로 줄일 수 있다..

[Python] 파이썬에서의 집합, set 함수

프로그래머스에서 문제를 풀다가, 나의 경우 for문으로 풀었던 문제를 다른 사람은 set 함수로 간단히 푼 것을 보고 set 함수를 자세히 찾아보게 되었다. 포스팅 하면서 set 함수의 사용법과 쓰임에 대해 까먹지 않으려고 (!!!) 포스팅해본다. SET 함수란?자바의 set 함수와 같이, 파이썬의 set 함수 또한 집합을 생성하기 위해 사용된다. 집합은 '중복되지 않는 요소들의 모음'으로, 수학에서의 집합을 생각하면 되고! 파이썬의 set 함수는 집합 연산(합집합, 교집합, 차집합 등)을 지원한다는 것 까지 알아두자. 기본 사용법# 빈 집합 생성s = set()# 리스트나 문자열 등을 사용해 집합 생성s = set([1, 2, 3, 4, 4])print(s) # 출력: {1, 2, 3, 4} # 중..

[Python] 파이썬에서 최소 공배수 함수로 구하기

알고리즘 문제를 풀다 최소 공배수를 구해야 하는 문제를 맞닥뜨렸다.  필자는 for문으로 풀었지만, 풀고 난 후 다른 적합한 풀이 방법이 있나 찾아보다 파이썬에서 최소 공배수를 구하는 함수가 있다는 걸 알았다. 공유도 하고 잊지 않고 다음에 써먹기도 할 겸 포스팅한다 🍀 ✏️ 최소 공배수란?먼저 다들 알고 있겠지만 최소 공배수가 뭔지 간단히 짚고 넘어가보려 한다. 최소 공배수(LCM, Least Common Multiple)는 두 수의 배수 중에서 가장 작은 공통 배수를 의미한다. 예를 들어, 4와 6의 최소 공배수는 12 이다. 개념최소 공배수는 다음과 같은 특성을 가지고 있다.두 수의 공통된 배수 중 가장 작은 수최소 공배수를 구하기 위해 최대 공약수(GCD, Greatest Common Divis..

[Python] 리스트 append 와 extend의 차이

다들 알다시피 append와 extend는 리스트에 요소를 추가하는 메서드다. 알고리즘 문제를 풀다가 extend를 썼어야 할 때에 append를 써서 틀려 이번 기회에 뭐가 다른지 차이점을 확실히 짚고 넘어가고 싶어 포스팅한다. ✏️append(x)append 메서드는 리스트 끝에 요소를 그대로 추가한다. 추가되는 요소는 리스트의 마지막에 추가된다. lst = [1, 2, 3]lst.append(4)print(lst) # 출력: [1, 2, 3, 4] ✏️extend(iterable)반면 extend 메서드는 리스트 끝에 다른 리스트의 모든 요소를 추가한다. 추가되는 요소들은 리스트의 마지막에 순서대로 추가된다. 여기서 iterable은 리스트, 튜플, 문자열 등과 같은 반복 가능한 객체이다.lst1..

[Python] 알고리즘 문제 풀다 발견한 대소문자 바꾸기 메서드.. 우리의 시간을 아끼자 ^ㅡ^

프로그래머스 코딩 기초 트레이닝 문제를 풀던 중 발견한 좋은 메서드가 있어서 공유 & 기억 차 쓰는 글이다. 문제인 즉 이 문제였다 '대소문자 바꾸기'https://school.programmers.co.kr/learn/courses/30/lessons/181949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr aBcDeFg 를 AbCdEfG 로 바꿔서 출력하면 되는 문제.주어진 건 str = input() 뿐이었고 어떻게 할까 하다가 대문자 소문자, 소문자 대문자로 바꿔주는 함수를 만든 후 입력값에 적용시켜 print 하도록 하는 코드를 만들고 실행시키니 ..

[Python] 리스트와 딕셔너리의 차이

오늘은 알고리즘 문제를 풀어오며 머리속에 둥둥 떠다니던 리스트와 딕셔너리의 개념을 확실히 정립하고 넘어가고자 포스팅을 작성해보려고 한다. 리스트와 딕셔너리 각각의 개념을 예시와 함께 정리하고, 이 둘의 차이와 활용 방법, 더 나아가 리스트와 딕셔너리를 어떻게 조합해서 쓸 수 있을까 까지 정리해보겠다 😋 ✏️ 리스트란?여러 가지 값을 순서대로 저장할 수 있는 데이터 구조이다. a = [1, 5, 2]b = [3, "a", 6, 1]c = []d = list()같은 자료형도 들어갈 수 있고, 다른 자료형도 들어갈 수 있다. 또한 리스트의 길이는 len() 함수를 사용해서 잴 수 있다.a = [1, 5, 2]print(len(a)) # 출력값: 3b = [1, 3, [2, 0], 1]print(len(b..

[Python] 변수의 mutable과 immutable의 차이

요새 아침마다 알고리즘 스터디를 하면서, 그날 그날 레벨이 높은 문제가 당첨될수록 내 힘으로 풀지못하고 구글링의 힘을 빌리는 날이 많아지고 있다. 그래서 얼렁뚱땅 푸는 게 아닌 정말 기초부터 탄탄히 하고 싶어서 프로그래머스의 코딩 기초 트레이닝 124 문제를 하루에 되는 대로 많이 풀고 있다. 오늘은 문득 문제를 풀면서 이 값은 저장을 해줘야돼 말아야돼? 고민하다가 이 참에 정리를 하고 확실히 한 후 넘어가려고 포스팅 해보려한다. 일단 다들 알고 있겠지만. 변수란? 변수(Variable)는 프로그램의 처리 과정에서 데이터를 담아둘 수 있는 메모리의 공간을 의미한다. 하나의 변수에는 하나의 값만 저장할 수 있고, 이 값은 변할 수 있기 때문에 뜻 그대로 '변수' 라고 하는 것이다. * 변수 이름 짓는 팁 ..