얼음녹차의 블로그
article thumbnail
[Programmers][Python] 체육복

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 각 학생들이 소지한 체육복의 개수를 정리하고, 탐욕법을 이용해 앞 뒤 학생에게 빌릴 수 있는 경우를 찾아 적용한다. 각 학생들이 소지한 체육복 개수를 리스트에 정리한다. cloth_lst 리스트를 생성하여 n개의 요소에 1을 선언한다. lost 리스트에 있는 학생들은 요소에 -1을 더하여 체육복의 개수를 0으로 만들어준다. reserve 리스트에 있는 학생들은 요소에..

article thumbnail
프로그래머스 lv1 100% 달성
잡다한글 2023. 4. 7. 00:18

lv0에 이어서 lv1 문제들도 다 풀었다. 이제 lv2문제들도 조금씩 보고있는데 새로 배우는 문제같은 경우는 예전처럼 간단한걸 알고 넘어가는것과 달리, 알고리즘 자체를 알아야한다던가 복잡한 과정을 알아야하더라.. 재미있기는 한데 스킬을 빨리 배우지 못하는 답답함이 lv2에 와서는 느껴지는 것 같다.

article thumbnail
[Programmers][Python] 달리기 경주

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 리스트의 index 함수를 이용하면 느려지므로, 딕셔너리를 통해 선수의 순위를 기억해 놓는 풀이이다. 리스트 players는 현재 선수들의 순위가 오름차순으로 정리되어있으므로 그대로 이용해 준다. 불리는 선수의 순위를 index 함수를 이용하여 찾기에는 비효율적이므로, 리스트의 인덱스로 이용할 딕셔너리를 생성해 준다. eunmerate를 이용하여 리스트의 주소와 요..

article thumbnail
[Programmers][Python] 실패율

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 각 스테이지에 멈춘 사람의 수를 저장하는 리스트 stg_lst와 각 스테이지에서 실패율을 저장하는 딕셔너리 failure_dic를 생성한다. 리스트는 1부터 N+1 사의 값을 저장하고, 리스트의 인데스값을 그대로 스테이지 수에 일치시키기 위해 N+2 개의 길이로 생성한다. 딕셔너리는 1부터 N까지 범위의 실패율만 구하면 되므로 range(1, N+1) 범위를 설정해 ..

article thumbnail
[Programmers][Python] 추억 점수

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 리스트 name과 yearing의 딕셔너리 생성을 통해 name를 인덱스로 점수를 찾는 풀이이다. zip 함수를 이용해 name을 key로 yearing을 value로 딕셔너리의 쌍을 맺는다. 각 photo의 리스트마다 점수의 합을 구한다. 각 이름이 지정된 name 리스트 안에 있을 때만 딕셔너리에서 점수를 찾아 합산한다. 각 photo의 점수 합을 정답 리스트에..

article thumbnail
[Programmers][Python] 신규 아이디 추천

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 단계별로 문자열을 수정하는 풀이이다. 1단계는 lower 함수를 이용해서 알파벳을 모두 소문자로 바꾸어 주었다. 2단계는 소문자, 숫자, '-_.' 3가지의 특수문자를 허용해주어야 하는데, 반대로 안 되는 문자를 제거했다. 3단계는 정규표현식을 이용했는데, 다른 코드 항목에서 설명하겠다. 4단계는 문자열의 첫 혹은 마지막 부분이 '.'임을 확인해야하는데, [0] 혹은..

article thumbnail
[Programmers][Python] 신고 결과 받기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 집합 자료형을 이용해 중복 신고를 제외하며, 신고결과 저장 -> 결과 보고 횟수 저장 -> 출력 3단계로 진행되는 풀이이다. 신고결과와 결과보고 횟수를 저장하는 딕셔너리 두 개를 생성해 준다. 신고결과 딕셔너리인 id_rep_dic은 한 사람에 여러 신고자가 들어가면서 중복은 없어야 하므로 set을 통한 집합 자료형을 value로 선언해 준다. 공백을 기준으로 신고자..

article thumbnail
[Programmers][Python] 성격 유형 검사하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 딕셔너리를 이용해 값을 저장한 다음 성격유형을 비교해 출력하는 풀이이다. 출력할 성격유형의 순서를 저장하기 위해 유형별로 리스트를 먼저 작성한다. 컴프리 헨션을 이용해 유형을 key로 초기값 0을 value로 지정해 생성해 준다. survey 리스트의 유형 두 가지를 ind1, ind2에 대입해 주고 점수를 4에 맞추어 -3 ~ 3 분포로 바꾸어준다. 점수가 음수가..

article thumbnail
[Programmers][Python] 햄버거 만들기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 스택 리스트를 작성하여 푸는 풀이이다. 스택 리스트에 재료를 하나씩 넣어준다. 만약 끝단에서 부터 4개의 숫자가 1231의 패턴을 나타내면 햄버거 숫자를 나타내는 변수에 1을 더하고 4개의 재료들을 del 함수를 이용해 삭제한다. def solution(ingredient): ing_stk = [] n_hambuger = 0 for i in ingredient: i..

article thumbnail
[Programmers][Python] 공원 산책

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 시작점을 찾고 그 위치를 기준으로 루트마다 조건을 만족하는지 체크하는 방식이다. 리스트 park의 길이를 통해 높이와 너비를 알아낸고 각 방향의 백터 딕셔너리를 선언한다. 이중 루프문을 통해 리스트 park에서 문자 S가 있는 위치를 찾고 cur_pos에 갱신한다. 루트마다 방향과 거리를 가져오고, new_pos에 갱신된 위치를 기록한다. new_pos이 공원을 벗..