얼음녹차의 블로그
article thumbnail
[Programmers][Python] 둘만의 암호

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

article thumbnail
[Programmers][Python] 덧칠하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 일정 구간을 한 번에 칠하는 것을 이용하여 몇 번째 벽까지 칠해져 있는지 체크하는 알고리즘으로 작성하였다. 처음벽부터 어디까지 색이 칠해져있는지 기록하는 변수 n_painted와 칠할 횟수의 변수 answer를 초기화시킨다. 각 section의 번호가 n_painted보다 값이 같거나 작으면 이미 페인트가 칠해져 있고, 반대의 경우에는 칠해져 있지 않다는 의미이므로..

article thumbnail
[Programmers][Python] 옹알이 (2)

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 옹알이 (1) (https://school.programmers.co.kr/learn/courses/30/lessons/120956)에서 조건이 변형된 문제이다. 처음 작성한 코드 단어 리스트에서 하나씩 단어를 가져와 조건에 부합하는지 체크하는 풀이이다. 4가지 옹알이에 대해 하나씩 체크를 하는데, 연속으로 발생하는 옹알이는 제외해야 하므로 옹알이가 두 번 붙여져 있는 문자열이 단어..

article thumbnail
[Programmers][Python] 크기가 작은 부분 문자열

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 p의 문자열 길이만큼 t의 문자열을 잘라 정수로 변환한 뒤 크기를 비교한다. 범위는 문자열 t의 길이에서 문자열 p의 길이를 빼고 1을 정해준다. 만약 p가 10의 길이, t가 3의 길이를 가진다면 0~2, ..., 8~10의 인덱스를 지정해주어야 하기 때문 def solution(t, p): answer = 0 p_len = len(p) for i in range..

article thumbnail
[Programmers][Python] 최빈값 구하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 딕셔너리를 이용해 숫자를 누적시키며 조건을 확인하는 코드이다. 빈 딕셔너리, 최빈값과 그 값, 중복 확인 플래그를 설정해 준다. 어레이에 있는 n마다 다음과 같은 프로세스를 따른다. 딕셔너리에 n이 없다면 n을 키로 가지는 쌍을 생성해 준다. 키 n의 값에 1을 더해준다. 키 값이 현재까지의 최빈값보다 크다면 갱신해 주고 값의 인덱스를 n으로 갱신해 준다. 또한 중..

article thumbnail
[Programmers][Python] 분수의 덧셈

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 각 분수를 기약분수로 변환한 뒤, 최소공배수를 구해 분수를 더하고 다시 기약분수로 변환하는 프로세스이다. 각 분수를 기약분수로 변환한다. 여기서 irr_frac이라는 함수를 따로 작성해 주었는데, math 라이브러리의 gcd 함수를 이용하여 최대공약수를 구하고 분자 분모를 최대공약수로 나누어주면 기약분수가 된다. 최소공배수를 이용한 분수들의 합은 다음과 같다 분자는 ..

article thumbnail
[Programmers][Python] 옹알이 (1)

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 단어 안에 옹알이가 최대 한 번씩만 들어있는 것을 이용해 단어마다 옹알이의 여부를 체크했다. 리스트 babbling의 요소 문자열에서 옹알이가 들어있는지 체크했다. 만약 옹알이가 있다면 그 옹알이의 문자열 길이를 카운트해 준다. 문자열의 길이와 카운트된 옹알이의 문자열 길이의 합을 비교해서 일치하면 조카가 발음할 수 있는 단어가 된다. def solution(babb..

article thumbnail
[Programmers][Python] 특이한 정렬

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120880 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 정렬을 위해 리스트 numlist 안의 각 요소들에 같은 값을 빼준다. n과 가까운 수를 찾기 위해 n을 빼주고 오름차순으로 정리할 것이다. 0.1을 추가로 빼준것은 거리가 같은 값일 때 큰 값이 먼저 오게 하기 위함이다. 뺄셈을 마친 요소들의 리스트는 전의 리스트 numlist와 쌍을 이루어 딕셔너리로 생성된다. 키로 들어간 뺄셈 요소들을 기준으로 오름차순으로 정..

article thumbnail
[Programmers][Python] 바탕화면 정리

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 먼저 파일들의 위치를 매핑한 뒤 각 파일들의 좌표들을 이용해 커서가 이동할 좌표값을 구했다. 파일들은 모두 사각형안에 들어가야 하므로 사실상 파일들의 좌표값의 최대, 최소를 구하면 된다. 파이썬 리스트에서는 [row, col]으로 묶는다고 lst [0][:]와 같은 문법으로 특정 열의 값을 추려내지 못하기 때문에 행과 열의 리스트를 각각 생성해 주었다. 루프문을 두 ..

article thumbnail
[Programmers][Python] 외계어 사전

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120869 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 각 단어에 대해서, 각 spell에 대한 루프문을 두 개를 이용하였다. 각 단어에 대한 체크를 하기 위해 첫 루프문으로 사전에 있는 단어들을 하나씩 불러왔다. 각 스펠을 불러와서 단어에 스펠이 하나씩 존재하는지 확인하였다. 조건문으로 스펠이 하나가 있지 않으면 break 함수를 이용해 다음 단어로 넘어가게 된다. 플래그 flg를 이용한 이유는 각 스펠이 조건문을 모두..