얼음녹차의 블로그
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이 공원을 벗..

article thumbnail
[Programmers][Python] 당구 연습

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 4가지 벽에 대해 원 쿠션을 시행하는 경우 제일 최솟값을 반환하는 알고리즘을 작성했다. 원 쿠션을 하기 전에 공끼리 먼저 만나면 안 되므로 x나 y 좌표가 같은 경우는 특정 벽에 원 쿠션하는 경우가 불가능하고, 비교군에서 제외해야 한다. 두 공의 x와 y 좌표 모두 같지 않은 경우 좌, 우에 있는 벽에 공이 쿠션을 할 경우 벽에 대해 선대칭을 하므로 다음과 같은 값..

article thumbnail
[Programmers][Python] 둘만의 암호

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 제외한 문자를 건너뛰고 문자를 뒤로 밀기 위해 index 함수를 이용하였다. 알파벳 리스트를 생성해 준다. 물론 이러한 상수는 저런 코드로 생성하고 코드에 올리는 게 더 좋다. 알파벳 리스트에서 skip에 해당되는 알파벳들을 제외해준다. 암호문의 각 문자들을 가져와 alp_lst에 해당되는 index를 찾고 주어진 값만큼 뒤로 밀어낸다. index 값을 가져와 주어..