알고리즘/이것저것47 [프로그래머스] 약수의 개수와 덧셈 - 파이썬(python) 나의 풀이 def solution(left, right): answer =0 for i in range(left, right+1): if i**0.5 == int(i**0.5) : answer -= i else : answer += i return answer 어떤 수가 제곱수라면, 항상 약수의 개수는 홀수가 된다. 왜냐하면, 약수는 항상 짝을 곱했을 때 해당 숫자가 되는데, 제곱근의 경우 자기 자신과 곱해야지만 해당 숫자가 되기 때문이다. 알고리즘/이것저것 2022. 9. 26. [프로그래머스] 키패드 누르기 - 파이썬(python) 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4.. 알고리즘/이것저것 2022. 9. 26. [프로그래머스] 크레인 인형뽑기 게임 문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,.. 알고리즘/이것저것 2022. 9. 26. [프로그래머스] 신규 아이디 추천 - 파이썬(python) 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이.. 알고리즘/이것저것 2022. 9. 25. [프로그래머스] 신고 결과 받기 - 파이썬(python) 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2.. 알고리즘/이것저것 2022. 9. 25. [프로그래머스] 두 정수 사이의 합 - 파이썬(python) 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 나의 풀이 def solution(a, b): if a==b : return a else : answer = 0 big, small = max(a,b), min(a,b) for i in range(small, big+1) : answer += i return answer 다른 풀이 def solution(a, b).. 알고리즘/이것저것 2022. 9. 6. [프로그래머스] 문자열 내 마음대로 정렬하기 - 파이썬(python) 나의 풀이 def solution(strings, n): return sorted(strings, key=lambda x:(x[n], x)) key = lambda x: (x[n], x) 1) n번째 인덱스를 기준으로 정렬하고 -> x[n] 2) 사전순으로 정렬한다. -> x 알고리즘/이것저것 2022. 9. 6. [프로그래머스] 문자열 내 p와 y의 개수 - 파이썬(python) 나의 풀이 def solution(s): p = 0 y = 0 p = s.count('p') + s.count('P') y = s.count('y') + s.count('Y') return p==y count 함수를 사용했다. count() 함수는 문자열에서 사용되는 함수로써, 문자열 내부에서 특정 문자, 또는 문자열이 포함되어 있는지를 count 하여 반환하는 함수이다. 대소문자를 구별하여, 카운팅 하는 범위 또한 지정이 가능하다. count("검색할 것", start, end) 다른 풀이 def numPY(s): # 함수를 완성하세요 return s.lower().count('p') == s.lower().count('y') 대소문자를 가리지 않고 p와 y의 개수를 찾는 것이므로, lower() 로 .. 알고리즘/이것저것 2022. 9. 6. [프로그래머스] 문자열 내림차순으로 배치하기 - 파이썬(python) 나의 풀이 def solution(s): return ''.join(sorted([i for i in s], reverse=True)) 문자열은 아스키코드 숫자에 따라 정렬된다! 따라서 해당 문자열을 리스트에 담고, 역순으로 정렬한 것을 다시 문자열로 바꾸면 끝. * sorted 는 문자열을 리스트로 변환하고 정렬한다고 한다... 굳이 [i for i in s] 를 쓰지 않아도 됨!! 알고리즘/이것저것 2022. 9. 6. [프로그래머스] 문자열 다루기 기본 - 파이썬(python) 나의 풀이 def solution(s): if len(s) == 4 or len(s) == 6 : for i in s : if i >='0' and i 알고리즘/이것저것 2022. 9. 4. 파이썬에서 pass 쓰는 이유 다른 분들의 코드를 보면 조건문 혹은 반복문에서 pass 를 쓰는 경우를 종종 보았다. continue 와 비슷한 역할을 하나..? 싶었는데 아니였다. pass문은 코드는 필요하지만, 아무 작업도하지 않기를 원할 때 사용된다. 나중에 코드를 추가 할 계획이거나 , 예외가 발생했을 때 처리하되, 아무 수행을 하지 않고 무시하는 데 사용할 수 있다. ex) def solution(x): if x > 0: print('0보다 크다') else: #나중에 추가할 것 def divide(x, y): z = None try: z = x/y except: pass # ZeroDivisionError가 발생했을 때 처리하되, 어떠한 수행도 하지 않음 return z divide(6,0) 출처 : https://www... 알고리즘/이것저것 2022. 9. 4. [프로그래머스] 서울에서 김서방 찾기 - 파이썬(python) / 파이썬 리스트 관련 함수 정리 나의 풀이 def solution(seoul): return "김서방은 "+str(seoul.index("Kim"))+"에 있다" 파이썬에서 list.index("찾고자 하는 것") 을 하면, list에서 찾고자 하는 값과 정확히 일치하는 첫번째 값의 index 값을 반환한다. 파이썬 리스트 관련 함수 출처 : https://wikidocs.net/14#_11 리스트에 요소 추가(append) append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다. >>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] 리스트 정렬(sort) sort 함수는 리스트의 요소를 순서대로 정렬해 준다. >>> a = [1, 4, 3, 2] >>> a.sort() >>> a [1.. 알고리즘/이것저것 2022. 9. 4. 이전 1 2 3 4 다음