728x90

알고리즘/프로그래머스 레벨 0 - python 48

Day12 - 3) 숨어있는 숫자의 덧셈(1)

설명 제한사항 입출력 예시 예시 설명 유의사항 문제 풀이 1. 문자열을 배열로 만들어서 숫자배열과 동일한 숫자만 answer2배열에 추가했습니다. 정수형으로 바꿔서 더하기 연산을 했습니다. def solution(my_string): answer1 = 0 answer = [] answer2=[] number = ['0','1','2','3','4','5','6','7','8','9'] for i in range(len(my_string)): answer.append(my_string[i]) for i in range(len(answer)): if answer[i] in number: answer2.append(answer[i]) answer2 = list(map(int, answer2)) for i in..

Day12 - 2) 문자열 정리하기

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. 먼저 문자열을 answer 배열에 추가한뒤 문자배열로 만든 숫자가 있는지 파악후 answer2로 숫자형태의 문자열을 추가했습니다. 숫자를 정수형으로 바꾼뒤 정렬 했습니다. def solution(my_string): answer = [] answer2=[] number = ['0','1','2','3','4','5','6','7','8','9'] for i in range(len(my_string)): answer.append(my_string[i]) for i in range(len(answer)): if answer[i] in number: answer2.append(answer[i]) print(answer2) for i in range(len(..

Day11 - 4) 팩토리얼

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. math의 factoraial()을 사용해서 문제를 풀었습니다. 사실 조금 많이 꼼수를 사용해서 풀었습니다. total이라는 배열에 각 팩토리얼 값을 담아서 값을 비교했습니다. import math def solution(n): answer = 0 total=[] for i in range(1,11): total.append(math.factorial(i)) max = 0 for i in range(len(total)): if total[i] == n: answer= i +1 break elif total[i+1] > n: answer= i+1 break return answer 문제를 풀면서 느낀점

Day11 - 2) 합성수 찾기

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. n 이하의 합성수를 찾기 위해서 이중for문을 사용했습니다. count가 3이상이 되면 answer에 +1을 합니다. def solution(n): answer = 0 for i in range(1, n+1): count = 0 for j in range(1, i+1): if i % j ==0: count +=1 if count>= 3: answer+=1 return answer 2. 합성수를 찾는 다른 방법(math을 사용하는)을 추가할 예정입니다. 문제를 풀면서 느낀점

Day11 - 1) 주사위의 개수

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. 상자의 가로, 세로, 높이를 주사위 크기의 나누기를 통해서 상자의 가로 세로, 높이 별로 몇 개의 주사위가 필요한지를 파악할 수 있습니다. 상자에 최대 들어갈 수 있는 주사위의 개수를 구하기 위해서 구한 w,d,h를 곱했습니다. def solution(box, n): answer = 0 w,d,h = 0,0,0 print(box) w = box[0] // n d = box[1] // n h = box[2] // n answer = w*d*h return answer 문제를 풀면서 느낀점

Day10 - 4) 배열 회전시키기

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. 지시 방향에 따라서 answer배열에 추가했습니다. 오른쪽으로 가는 경우 제일 오른쪽 값을 맨 앞으로 보내기 위해서 0번에 insert 했습니다. 왼쪽으로 가는 경우 인덱스 -1을 했습니다. (맨 뒤는 -1로 표기하기때문에 0번째 값은 자동으로 맨뒤에 들어갔습니다.) def solution(numbers, direction): answer = [] if direction == 'right': for i in range(len(numbers)): if i == len(numbers)-1: answer.insert(0, numbers[i]) else: answer.insert(i+1, numbers[i]) elif direction == 'left': f..

Day10 - 3) 공 던지기

설명 제한사항 입출력 예시 예시 설명 문제 풀이 1. 배열을 두배로 만들면서 짝수 번호의 원소만 새 배열에 넣었습니다. k(공을 던지는 사람) % len(nums) 의 결과 -1을 해서 k번째에 공을 던지는 사람의 번호를 구했습니다. def solution(numbers, k): answer = 0 count =0 nums = (numbers * 2)[::2] print(nums) n = k % len(nums) return nums[n-1] 2. 다른 방식을 푼 문제는 오답 -> 수정해서 올리겠습니다. 문제를 풀면서 느낀점

728x90