얼음녹차의 블로그
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를 이용한 이유는 각 스펠이 조건문을 모두..

article thumbnail
[Programmers][Python] 다음에 올 숫자

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 작성한 코드 문제에서 등차수열과 등비수열 둘 중 하나임을 명시했으므로, 등차수열에 대한 조건식만 작성해도 좋다. 등차수열임을 확인하기 위해 0과 1번째 요소의 차와 1과 2번째 요소의 차를 비교해 준다. 맞다면 마지막 요소와 차이 값을 더해주어 반환한다. 아니다면 마지막 요소와 차이 값을 곱해주어 반환한다. def solution(common): if common[0] - com..