파이썬 7

📑 코딩테스트 필수 자료구조

파이썬 VS 자바 1. 배열 (시간 복잡도) => O(1) 입력값의 크기와 무관하게 일정한 속도, O(c) => 상수 시간만큼의 복잡도언어 구분파이썬자바정의다양한 데이터 타입의 원소들이 순서대로 저장된 선형 자료 구조동일한 데이터 타입의 원소들이 순서대로 저장된 선형 자료 구조 (Primitive / Wrapper)선언list = []int [] arr = new int[]; ArrayList aList = new ArrayList();추가list.append(값) O(1)arr[idx] = 값;aList.add(값); O(n) : 배열이 꽉찬 경우 확장 및 복사삭제list.pop(idx) O(n) list.pop() 맨 뒤의 원소 삭제 O(1)arr[idx] = 0;aList.remove(idx or ..

📑 프로그래머스_귤 고르기_day12

알고리즘 챌린지 12일 차이다. 주말에 푹 쉬고 하니 확실히 상쾌하고 귀찮은 마음이 덜 생기는 것 같다. 목표를 향해 열심히 달려가는 것도 좋지만 역시 충분한 휴식이 병행되어야 한다는 점을 다시금 깨달았다. 오늘은 프로그래머스 Level2로 분류된 귤고르기 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제 또한 자료구조를 이용하면 쉽게 풀수 있는 문제로 최근에 풀었던 시소 짝꿍문제와 상당히 유..

📑 프로그래머스_시소짝꿍_Day10

알고리즘 챌린지 10일 차이다. 시작할 때는 조금 자신이 없었지만 어느덧 열흘 가까이하다 보니 자신감이 생기고 더 잘할 수 있을 것 같은 느낌이 샘솟는다. 오늘은 프로그래머스 level2에 분류된 시소짝꿍 문제를 가져왔다. 조건을 보자마자 완전 탐색(O(n^2))은 어려울 것이라는 생각이 들었을 것이다. 그렇다면 한 번의 반복(O(n))으로 시간 복잡도를 최적화하는 방법을 찾아보아야 한다. 간단하게 생각해보면 각 무게마다 1:1, 1:2, 2:3, 3:4 비율의 무게를 가진 사람이 몇 명 있는지 체크해보아야 한다. 경우의 수를 살펴보기 전에 문제에서는 자세하게 언급하지 않았지만 순서쌍이라고 했다. 그 말인 즉, 순서쌍에 포함되는 사람의 종류는 구분이 필요하지만 같은 사람끼리는 순서를 고려할 필요가 없다...

📑 프로그래머스_호텔 대실_Day8

알고리즘 챌린지 8일 차이다. 막상 시작해 보니 어찌어찌하고 있기는 한데, 조금 더 열심히 하려면 주말은 쉬는 걸로 할 걸 그랬나 보다.. 다다음주에는 여행을 가니 할 수 있을 때 열심히 꾸준히 해야겠다. 오늘도 프로그래머스 Level2에 분류된 문제를 가지고 왔다. https://school.programmers.co.kr/learn/courses/30/lessons/155651?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다양한 방법으로 풀 수 있겠지만 필자는 비교적 간단하게 구간합 알고리즘을 사용했다. 배열의 길이가 100..

📑 프로그래머스_숫자 변환하기_Day3

알고리즘 풀이 챌린지 3일차이다. 평일에는 출근해서 점심시간에 짬짬이 풀고 포스팅을 하고 있지만,, 내일부터 시작될 설 연휴동안 문제를 풀 수 있을까 걱정이다.. ㅋㅋ 이왕 시작한거 연휴에도 쉬지 않고 매일 한 문제씩 꼭 진행해보자. 오늘은 프로그래머스 level2로 분류된 동적 계획법 문제를 가지고 왔다. https://school.programmers.co.kr/learn/courses/30/lessons/154538?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 동전으로 내야하는 금액을 맞추는 것과 아주 비슷한 ..

📑 프로그래머스_혼자서 하는 틱_Day2

알고리즘 풀이 챌린지 2일 차이다. 오늘은 마찬가지로 프로그래머스 level2로 분류되어 있는 구현 문제를 가져와 풀이해 보았다. https://school.programmers.co.kr/learn/courses/30/lessons/160585?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 읽다 보면 머쓱이의 실수를 고려해야 하나 하는 의심이 들었지만 그냥 그럴 수도 있겠다~ 정도만 생각하고 가볍게 읽어도 될 것 같다. 머쓱이의 실수와는 별개로 결과론적으로 봤을 때, 규칙 내에서 가능한 경우의 수 인지만 판단하면 된..

📑 프로그래머스_미로탈출_Day1

오랜만에 다시 알고리즘 풀이를 시작하려 한다. 최근 가까운 지인을 통해 알고리즘 말고 다른 간단한 챌린지를 시작했는데, 챌린지 형식으로 진행하다 보니 열심히 빠짐없이 한 달 동안 완수할 수 있었던 것 같다. 혼자 하다 보니 금세 또 보여지는 면이 없어서 실천이 어려울 수도 있지만, 같은 방식으로 스스로 챌린지를 진행하여 매일 한 문제씩 알고리즘을 풀고 블로그에 포스팅을 남기는 도전을 해보고자 한다. 메인 언어인 자바를 비롯하여 가능하다면 파이썬까지 풀이를 두 가지로 하여 파이썬 복습 겸 챌린지를 시작해 보겠다. 오늘 풀이해 볼 문제는 프로그래머스 level 2로 배정된 너비 우선 탐색 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/159..