본문 바로가기

알고리즘

(87)
코딩 테스트 연습 19일 코딩 테스트 연습 19일 프로그래머스, OX퀴즈 📄 나의 코드 quiz = ["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] def solution(quiz): answer = [] for str in quiz: arr_str = str.split(" ") if arr_str[1] == '-': result = int(arr_str[0]) - int(arr_str[2]) elif arr_str[1] == '+': result = int(arr_str[0]) + int(arr_str[2]) if result == int(arr_str[4]): answer.append("O") else: answer.append("X") return answer pri..
코딩 테스트 연습 15일&16일 코딩 테스트 연습 15일&16일 프로그래머스, 영어가 싫어요. 📄 나의 코드 numbers = "onefourzerosixseven" # print("one" in numbers) // True # numbers.replace("one", "1") # print(numbers.replace("one", "1").replace("four", "4")) def solution(numbers): answer = numbers\ .replace("zero", "0")\ .replace("one", "1")\ .replace("two", "2")\ .replace("three", "3")\ .replace("four", "4")\ .replace("five", "5")\ .replace("six", "6")\ ...
코딩 테스트 연습 14일 코딩 테스트 연습 14일 프로그래머스, 캐릭터의 좌표 📄 나의 코드 board = [7, 9] keyinput = ["down", "down", "down", "down", "down"] def solution(keyinput, board): cur = [0,0] for key in keyinput: if key == "left" and cur[0] > -(board[0] // 2): cur[0] -= 1 elif key == "right" and cur[0] -(board[1] // 2)..
코딩 테스트 연습 12일, 13일 코딩 테스트 연습 12일, 13일 프로그래머스, n의 배수 고르기 📄 내 코드 n = 12 numlist = [2, 100, 120, 600, 12, 12] def solution(n, numlist): answer = [] for num in numlist: if num % n == 0: answer.append(num) return answer print(solution(n, numlist)) list.remove 사용해야하는 줄 알았는데. 아니었다. 주어진 값을 변경하지 않는게 좋은 것 같다. 📌 공부할만한 코드 def solution(n, numlist): answer = [i for i in numlist if i%n==0] return answer 프로그래머스, 2차원으로 만들기 📄 내 코드 ..
타임어택 특강 타임어택 특강 2시간 주어진 시간 내에 4문제 중 3문제 이상 풀어 제출해야 하는 과제 나는 파이썬으로 제출했었다. JavaScript로도 구현해보고 복습하는 의미에서 문제를 다시 풀어보았다. 📄 각도기 function solution(angle) { var answer = 0; if(angle > 0 && angle 90 && angle < 180){ answer = 3 } else if(angle === 180){ answer = 4 } return answer; } angle = 30 console.log(solution(angle)) 📄 옷가게 할인받기 function ..
자료구조 3주차_큐&해쉬 자료구조 3주차_큐&해쉬 큐 first in first out 선형 구조 나오는 것도 한쪽으로만 나옴! 콘서트 대기순서! 주문이 들어왔을 때 먼저 들어온 순서대로 처리해야 할때. 사용 📌 큐에서 제공하는 기능 enqueue(data) : 맨 뒤에 데이터 추가하기 dequeue() : 맨 앞의 데이터 뽑기 peek() : 맨 앞의 데이터 보기 isEmpty(): 큐가 비었는지 안 비었는지 여부 반환해주기 📄 큐의 구현 class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.head = None self.tail = None def enqueue(self, value)..
자료구조 2주차 복습&숙제 자료구조 2주차 복습&숙제 요세푸스 문제 📄 나의 코드 (데크 사용 deque) # BOJ 1158 from collections import deque def josephus_problem(n, k): deq = deque() for i in range(n): deq.append(i + 1) result = '' else: result += str(deq[0]) + ', ' deq.popleft() else: temp = deq.popleft() deq.append(temp) cnt += 1 return print(result) n, k = map(int, input().split()) josephus_problem(n, k) 저번에 list로 제출한 것과 로직 동일! 동일한 로직이지만, 자료구조를 뭘..
자료구조 3주차_스택 자료구조 3주차_스택 & 큐 스택(Stack) Last In First Out 되돌리기 할때 사용! push(data) : 맨 위에 데이터 넣기 pop() : 맨 위의 데이터 뽑기 peek() : 맨 위의 데이터 보기 isEmpty() : 스택이 비었는지 안 비었는지 여부 반환 📌 스택 구현 class Node: def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): self.head = None def push(self, value): new_head = Node(value) new_head.next = self.head self.head = new_head # pop 기능 구현 def pop..
자료구조 3주차_정렬 자료구조 3주차_정렬 버블정렬 바로 옆과 비교해서 자신보다 크면 swap 제일 큰 수가 오른쪽으로가고 고정! 📄 나의 코드 input = [4, 6, 2, 9, 1] def bubble_sort(array): for i in range(len(array) - 1): for j in range(len(array) - 1 - i): if array[j] > array[j + 1]: temp = array[j] array[j] = array[j + 1] array[j + 1] = temp return array bubble_sort(input) print(input) # [1, 2, 4, 6, 9] 가 되어야 합니다! 📄 코드 input = [100,56,-3,32,44] def bubble_sort(arra..
자료구조 2주차_이진탐색과 재귀함수 자료구조 2주차_이진탐색과 재귀함수 이진탐색 📌 숫자 내림 >>> print((4 + 5) / 2) 4.5 >>> print((4 + 5) // 2) 4 소수점 이하의 수는 모두 버리고 몫만 나타낼 수 있음! 📄나의 코드 finding_target = 5 finding_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] def is_existing_target_number_binary(target, array): start = array[0] end = array[len(array)-1] while start array[mid]: start = mid + 1 return False result = is_existing_target_numb..