코딩테스트(21)
-
[Programmers/Lv. 1] 문자열 나누기 (프로그래머스 연습문제, Python)
📎 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 문제설명, 제한사항, 입출력 예 주어진 문자열 s를 아래 규칙에 따라서 분해하고, 분해된 문자열의 개수를 구하라는 문제이다. 문자열 s의 첫 글자를 x라고 한다. (문자열 s는 소문자로만 이루어진다.) 문자열을 읽어나가면서 x가 나온 횟수와 x가 아닌 글자가 나온 횟수를 카운트한다. 처음으로 두 횟수가 같아지는 순간 (0 제외) 이 카운트를 멈추고, 지금까지 읽은 문자열을 분리한다. 분리된 문자열을 빼고, 남은 부분에 대해서 "첫 글자를 읽고 -> 문자별 나온 횟수 카운트" 과정을 반복한다. 두 ..
2023.08.08 -
[Programmers/Lv. 1] 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT, Python)
📎 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 문제설명, 제한사항, 입출력 예 아래 주어진 조건과 같이 게시판 불량 이용자를 신고하고, 처리 결과를 메일로 발송하는 시스템을 개발하라는 문제이다. 조건 1. 각 유저는 한 번에 한 명의 유저만을 신고할 수 있다. 한 유저를 여러 번 신고하거나, 서로 다른 유저를 계속해서 신고하거나 같은 신고 횟수에 제한은 없다. 단, 한 유저를 여러 번 신고한 경우에 신고 횟수는 1회로 인정된다. (무지->네오, 무지->네오, 무지->네오 3번을 신고해도 처리는 1회) 조건 2. 매개변수로 주어지는 k번 이상 ..
2023.08.08 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 25 - 시뮬레이션, 조건문, 수학 (Python)
1. 문자열 밀기 (문제 설명, 제한사항, 입출력 예) 문자열 A와 B가 주어질 때, A를 밀어서 B가 될 수 있다면, 밀어야 하는 최소 횟수를 구하라는 문제이다. 만약, 밀어서 B가 될 수 없으면 -1을 반환하면 된다. (내가 생각한 풀이 과정) 차례대로 조건을 세 개로 나누어서 문제를 풀었다. 첫 번째, A와 B가 같은 경우 -> 0을 반환 두 번째, A와 B를 한 칸씩 밀면서 두 문자열을 비교 -> shift의 숫자대로 밀면서 문자열을 "A[-shift:] + A[0:-shift]" 형태로 비교 세 번째, A의 길이만큼 밀었는데도 (한바퀴 돈 경우) 같은 값이 나오지 않는 경우 -> -1 반환 (될 수 없다고 판단) (코드) 더보기 💡 내 코드 def solution(A, B): shift = 1 ..
2023.06.07 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 24 - 수학, 시뮬레이션, 문자열, 조건문, 반복문 (Python)
1. 치킨 쿠폰 (문제 설명, 제한사항, 입출력 예) 치킨 한 마리당 쿠폰을 한 장 발급해 주는 치킨집이 있다. 쿠폰을 열장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스로 주는 치킨에도 쿠폰을 발급해 준다. 시켜 먹은 치킨의 수가 주어질 때, 받을 수 있는 최대 서비스 치킨의 수를 구하라는 문제이다. (내가 생각한 풀이 과정) 총 서비스를 받은 치킨의 수를 저장할 정수 변수 answer를 만들어둔다. 이제 10마리를 기준으로 입력값 chicken을 계속 반복시킬 거다. 어떻게 반복할 거냐면. 1) 입력값 chicken을 10으로 나누어서 서비스로 받은 치킨의 값을 answer에 추가한다. 2) chicken에는 10으로 나누고 남은 나머지 값과 + 서비스로 받은 치킨의 값을 저장해 둔다 (서비..
2023.06.06 -
[Programmers/Lv. 0] 코딩테스트 입문 Day 23 - 배열, 정렬, 문자열 (Python)
1. 특이한 정렬 (문제 설명, 제한사항, 입출력 예) 배열 numlist와 정수 n이 주어질 때, numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 구하라는 문제이다. 만약 n으로부터 거리가 같다면, 더 큰 수를 앞에 오도록 배치하면 된다. 단, numlist 배열은 중복된 원소를 갖지 않는다. n의 범위는 1 이상, 10,000 이하로 제한한다. (내가 생각한 풀이 과정) 이 문제는 내가 처음 생각했던 것과 다르게 몇 번의 "도약"이 필요했던 문제였다. 처음 생각한 풀이 과정과 나의 도약을 함께 따라가면서 이해해 보자. 우선, 처음 생각한 풀이 과정은 간단했다. n과 가까운 수를 구하기 위해 num에서 n을 빼 절댓값을 씌워준 후, 새로운 리스트 1에 추가하고, 값이 작은 순서대로 새로..
2023.06.06