본문 바로가기

programming study/Algorithm

(275)
[프로그래머스] 같은 숫자는 싫어 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 같은 숫자는 싫어 def solution(arr): # 답을 담을 배열 answer = [] # 주어진 배열을 하나씩 접근 for i in range(len(arr)): # 처음 인덱스면 무조건 넣기 if i == 0: answer.append(arr[i]) # i가 1 이상일 때 이 전에 들어간 원소가 같지 않을 때만 넣기 if i >= 1: if arr[i - 1] != arr[i]: answer.append(arr[i]) return answer Comment 간단하다. 처음인 경우만 예외처리를 하고 그 이후는 이전의 인덱스의 원소가 같지 않을 때만 답안 리스트에 들어가도록 하면 된다. Referen..
[프로그래머스] 가운데 글자 가져오기 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 가운데 글자 가져오기 def solution(s): # 글자의 길이 s_length = len(s) # 글자의 길이가 홀수인 경우 가운데 글자를 뽑아내기 if s_length % 2 == 1: answer = s[s_length // 2] # 글자의 길이가 짝수인 경우 가운데 두 글자를 뽑아내기 if s_length % 2 == 0: answer = s[(s_length // 2) - 1:(s_length // 2) + 1] return answer Comment 홀수인 경우와 짝수인 경우 뽑아내는 글자의 조건이 다르므로 if문으로 분기처리해서 가운데 글자를 뽑아내면 된다. 슬라이싱을 할 때 인덱스의 숫자..
[프로그래머스] 2016년 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 2016년 def solution(a, b): # 진행된 일수 date = 0 # a월 1일까지의 일수 구하기 for i in range(1, a): # i가 7이하일 때 if i = 8: # 홀수이면 30일 if i % 2 == 1: date += 30 continue # 짝수이면 31일 elif i % 2 == 0: date += 31 continue # 주어진 일수 b를 date에 더하기 date += b # 주어진 일수를 1을 빼고 7을 나눈 나머지를 요일에 넣는다 day = (date - 1) % 7 # 2016.1.1이 금요일이므로 if문으로 적절한 요일을 answer에 넣기 # 0이면 일주일 ..
[프로그래머스] K번째 수 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # K번째 수 def solution(array, commands): answer = [] # commands를 한 행씩 접근하여 슬라이싱하기 for i in range(len(commands)): # 주어진 조건에 맞게 슬라이싱 cut_array = array[commands[i][0] - 1:commands[i][1]] # 오름차순 정렬하기 cut_array.sort() # 주어진 조건의 원소 꺼내어 답안 리스트 넣기 answer.append(cut_array[commands[i][2] - 1]) return answer Comment 주어진 2차원 리스트인 commands를 행 별로 접근해서 조건에 맞게..
[프로그래머스] 체육복 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 체육복 def solution(n, lost, reserve): # 빌리기전 체육복을 가진 학생 수 = 총학생수 - 잃은 학생수 left = n - len(lost) # 빌린 학생수를 담을 변수 borrowed = 0 # 여분의 체육복이 있는 학생을 제외한 수업을 듣지 못하는 학생 real_lost = [] # 잃어버린 학생 리스트를 대상으로 입을 수 있는 체육복 사이즈가 reserve에 있는 것을 확인 # 잃어버린 학생 리스트 하나씩 접근 for i in range(len(lost)): # 확인 전에 여벌 체육복의 도난여부를 확인하고 도난당한 경우 빌려줄 수 없으므로 예외처리 # lost 리스트에서도 수..
[프로그래머스] 모의고사 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 모의고사 def solution(answers): # 가장 많은 문제를 맞힌 사람을 나타내는 리스트 answer = [] # 수포자 1 supo_1 = [1, 2, 3, 4, 5] # 수포자 2 supo_2 = [2, 1, 2, 3, 2, 4, 2, 5] # 수포자 3 supo_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] # 각 수포자가 맞은 수를 기록하는 배열 cnt = [0, 0, 0] # 입력받은 답안을 토대로 각 수포자가 얼마나 맞았는지 탐색 for i in range(len(answers)): # 수포자 1은 5를 주기로 반복 if answers[i] == supo_1[i % 5..
[프로그래머스] 신규 아이디 추천 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 신규 아이디 추천 def solution(new_id): # 아이디를 조건에 맞게 변경하기 # 아이디에 허용되는 문자열들 is_able = ['-', '_', '.'] # 대문자를 소문자로 변환 new_id = new_id.lower() # 아이디의 길이 id_length = len(new_id) # 규칙에 맞는 아이디 available_id = [] # 한 글자씩 접근 for i in range(id_length): # 숫자거나 허용된 문자열인 경우에만 새 아이디에 넣기 if (new_id[i].isdigit() or new_id[i] in is_able or new_id[i].isalpha()): av..
[프로그래머스] 크레인 인형 뽑기 게임 - python 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 파이썬 코드 # 크레인 인형뽑기 게임 def solution(board, moves): # 집은 인형을 넣을 배열 pick = [] # 답 answer = 0 # 주어진 moves 배열을 토대로 board를 체크하기 # x: 집을 인형의 위치 for x in moves: # board의 한 줄 씩 접근 # borad의 행 길이 board_row_length = len(board) # board의 행 번호 for i in range(board_row_length): # 해당 줄의 집을 위치에 인형이 없는 경우 if board[i][x - 1] != 0: # pick 배열에 인형을 넣기 pick.append(board[i][..