본문 바로가기

전체 글88

[Stack & Queue] 같은 숫자는 싫어 문제: https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드def solution(arr): answer = [] s = int() for i in range(len(arr)): if s != arr[i]: answer.append(arr[i]) elif s == arr[i]: continue s = arr[i] return answerarr = [.. 2024. 6. 12.
Stack & Queue 개념 Stack스택은 쌓아 올린다는 것을 의미한다. 따라서, 스택의 자료구조는 차곡차곡 쌓아 올린 형태를 보여준다. 특징같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근할 수 있다.top에 있는 자료는 가장 최근에 들어온 자료를 가리키며, 새로 추가되는 자료는 top에 있는 자료의 위에 쌓인다.스택에서 top을 통해 삽입하는 연산을 ‘push’, top을 통해 삭제하는 연산을 ‘pop’이라고 한다. 따라서, 스택은 시간 순서에 따라 자료가 쌓이기에 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 지니게 된다.이러한 구조를 후입선출(LIFO, Last-In-First-Out)구조라고 한다.Stack Overflow스택이 넘치는 경우Stack Unde.. 2024. 6. 12.
[Hash] 베스트 앨범 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr예제)genresplays["classic", "pop", "classic", "classic", "pop"][500, 600, 150, 800, 2500]풀이enumerate를 통해 인덱스를 생성해 주어 info_list에 받는다.print(info_list)[[0, 'classic', 500], [1, 'pop', 600], [2, 'classic', 150], [3, 'classic', 8.. 2024. 6. 12.
[Hash] 의상 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이기존 예제로는 이해가 잘 안되서 가장 기본적인 예로 옷의 종류가 모두 다른 경우를 만들어서 적용해봤다.예시)[['yellow_hat', 'headgear'], ['blue_sunglasses', 'eyewear'], ['crow_mask', 'face']]모든 경우의 수는 입거난 입지 않은 경우가 존재하므로 2의 3제곱인 8이다.그러나, 옷은 1개 이상 무조건 입어야 하므로 모두 입지 않는.. 2024. 6. 12.
[Hash] 전화번호 목록 문제: https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krHash를 사용한 코드 1 (실패)def solution(phone_book): dic = {} for p in phone_book: dic[p] = p s = '' for i in p: s += i if s in dic and s != p: return False return.. 2024. 6. 12.
[Hash] 폰켓몬 문제: https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입출력 예numsresult[3,1,2,3]2[3,3,3,2,2,4]3[3,3,3,2,2,2]2 풀이set()을 통해 중복 값을 제거한다.예제 1)nums는 {1,2,3}이 된다.중복값을 제거한 nums의 길이는 3이다.nums/2 만큼 뽑는다. (= 2마리 뽑는다.)2마리를 뽑아야 하는데 중복값을 제거한 길이, 즉 3마리가 존재하므로 가장 많은 종류의 폰켓몬을 뽑을 수 있는 경우의 수는 2이다... 2024. 6. 12.