Algorithm 69

세무민의 알고가자 : 프로그래머스 3진법 뒤집기 문제 풀기

최근에 면접 준비하느라 포스팅을 못했는데 면접이 끝나서 오늘 일어나자마자 푼 문제를 포스팅 해보려구 합니다! 오늘 푼 문제는 3진법 뒤집기! 문제 설명 & 제한 사항 & 입출력 예시 풀이 이번 문제는 담백 그 자체! 사실 어렵지 않다. 10진법 -> 3진법 -> 역순 -> 10진법 위에 조건처럼 구현해주면 되는데 여기서 리스트를 이용하면 역순부분을 사용하지 않아도 된다. 즉! 10진법 -> 3진법 -> 10진법 바로 코드를 보도록 하자! # 첫번째 코드 def solution(n): result = [] count = n while count > 0: tmp = count % 3 result.append(tmp) count = int(count / 3) i, check = -1, 0 answer = 0 ..

세무민의 알고가자 : 프로그래머스 문자열 내 마음대로 정렬하기 문제 풀이

오늘 풀어 볼 문제는 문자열 내 마음대로 정렬하기! 문제 설명 및 제한 조건 입출력 풀이 사실 이번 문제는 10분?정도 걸렸던거 같네요 ㅎㅎ 사실 너무 쉬운 문제라서 포스팅하는게 맞는지 의문이 들었지만 해봅니다. 이번 문제에서는 n번째 값을 기준으로 정렬을 해주면 됩니다. 또한 같은 값이 존재한다면 사전순으로 나열하면 된다고 하네요! 여기서 초점을 둬야하는 부분은?! 1. 정렬을 2번 해주기! 정렬을 2번하는 건 사전순으로 한번 정렬해준 뒤 n을 기준으로 정렬해주기 위해서! 이렇게 문제를 접근하면 끝입니다. 코드는 2가지 방법으로 풀어봤어요! 코드 def solution(strings, n): # 방식 1 strings.sort() strings.sort(key=lambda x : (x[n])) retu..

세무민의 알고가자 : 프로그래머스 이상한 문자 만들기 문제 풀기

오늘 풀어 볼 문제는 이상한 문자 만들기! 문제 설명 & 제한 사항 & 입출력 예시 문제 풀이 사실 이번 문제는 조금 이해가 안됬다. 문제가 어려워서 이해가 안된것이 아니라 쉬운데 왜 아스키코드로 접근하면 틀렸다고 하는지... 무튼 내가 접근했던 방법은 총 3가지! 1. 아스키 코드로 변환해서 대소문자를 변경해주기 2. str -> list -> str로 쪼개서 만들기 3. list 상태로 구분하기 3가지 중 정답은 3번이였다. 위에 문제를 접근하기 전 가장 먼저 체크해야 하는 부분은 홀수와 짝수를 구분해서 대소문자로 변경해주는 것인데 이는 X % 2 == 0이라는 조건이 만족한다면 대문자, 그렇지 않다면 소문자! 배열이 0부터 시작하기 때문에 잘 체크해야 한다. 무튼 아스키코드로 접근하려고 했던 방식은..

세무민의 알고가자 : 프로그래머스 폰켓몬 문제 풀기

오늘 풀어볼 문제는 폰켓몬! 바로 시작하겠습니다! 문제 설명 & 제한 사항 입출력 예시 풀이 우선 문제를 재대로 해석하지 않으면 어렵게 느낄 수 있습니다. 진짜 문제를 이해했다면 쉬운 문제라고 생각이 들더라구요! 위의 예를 잘 보시면 nums라는 배열의 총 개수 -> N 찾으려는 폰캣몬의 개수 -> N / 2 폰켓몬은 중복이 될 수 없다! 여기서 살짝 문제 푸는 방법을 아시겠죠? 결국에는 nums의 개수를 2로 나눈 값만큼 포켓몬을 찾되 중복되는 값이 아닌 최대값을 찾으면 됩니다. 여기서 포인트는 중복되는 값을 제거해준 값도 확인해주면 됩니다. 결론적으로 1. list -> 중복값 제거해주기 2. 개수 일치하는지 비교 코드 def solution(nums): result = len(nums) // 2 n..

세무민의 알고가자 : 프로그래머스 카펫 문제 풀기

오늘 풀어볼 문제는 카펫! 생각해보면 쉬웠으나 삽질을 조금 해버림...ㅎ 문제 설명 제한사항 및 입출력 예시 풀이 이 문제는 우선 문제를 이해하는 것이 중요하다. 결국에는 노란색 카펫이 갈색 카펫보다 작아야 한다는 것을 인지해야 한다. 예를 들어서 Brown, Yellow = 24, 24의 예시를 들어보면 아래의 그림처럼 그릴 수 있다. 여기서 중요한 건 노란색의 테이블을 갈색 테이블이 포함해야 한다는점! 여기서 확인할 수 있는것은 아래와 같다! 결국 Yellow는 (x-2)(Y-2)의 값을 일치하는 경우의 수를 찾아야 한다. 반복문을 이용하더라도 위와 같은 경우의 수를 인지하지 못한다면 1~2개 정도의 테스트 케이스를 통과하지 못한다. 그 이유는! Yellow를 포함하지 않는 값을 출력하기 때문! 이번..