목록전체 글 (191)
정화 코딩
9/11. 나이순 정렬 (백준 10814번) https://www.acmicpc.net/problem/10814 #python from sys import stdin n = int(stdin.readline()) data = [] for i in range(0, n): num, name = map(str, stdin.readline().split()) data.append([]) data[i].append(int(num)) data[i].append(name) data.sort(key=lambda x:x[0]) for i in range(0, n): print(data[i][0], data[i][1], sep=" ") 처음에는 딕셔너리로 데이터를 받고 딕셔너리 정렬을 해서 풀려고 했다. data[나이] ..
구현 개요 파이썬으로 구현하는 이진 탐색은 2가지 방법이 있다. 첫 번째는 재귀 함수를 사용하는 것이고, 두 번째는 반복문을 이용하는 것이다. 구현을 위한 준비 target : 찾고자 하는 값 data : 오름차순으로 정렬된 list start : data의 처음 값 인덱스 end : data의 마지막 값 인덱스 mid : start, end의 중간 인덱스 구현 1. 반복문을 사용한 구현 def binary_search(target, data): start = 0 end = len(data) - 1 while start target: end = mid - 1 else: start = mid + 1 return None 2. 재귀 함수를 사용한 구현 def binary_search(target, data,..
탐색 (Search) 여러 데이터들 중에서 원하는 값을 찾는 알고리즘 1. 순차 탐색 (Linear Search) 💡 정의 리스트의 항목들을 처음부터 마지막까지 하나씩 순서대로 검사하는 알고리즘 💡 과정 1️. 맨 앞 데이터와 찾으려는 데이터가 같은지 비교한다. 2️. 다르다면 다음 데이터와 찾으려는 데이터가 같은지 비교한다. 3. 같은 데이터를 찾기 전까지 2의 과정을 반복하고, 같은 데이터를 찾으면 종료한다. 💡 특징 - 정렬되지 않은 리스트에도 적용 가능하다. - 시간복잡도: O(n) 2. 이진 탐색 (Binary Search) 💡 정의 배열을 반으로 쪼개어 찾으려는 값이 왼쪽에 있는지 오른쪽에 있는지를 찾아 탐색 범위를 좁혀가며 탐색을 진행하는 알고리즘 💡 과정 1️. 시작 인덱스와 마지막 인덱스..
전부 파이썬으로 풀었고 다 푸는 데에 40-50분 정도 걸렸다. C문제를 다른 방법으로 푸느라 20-30분 정도 더 썼다. A. 사칙연산 (백준 10869번) https://www.acmicpc.net/problem/10869 import sys a, b = map(int, sys.stdin.readline().split()) print(a+b) print(a-b) print(a*b) print(a//b) print(a%b) (정답) B. 나머지 (백준 10430번) https://www.acmicpc.net/problem/10430 import sys a, b, c = map(int, sys.stdin.readline().split()) print((a+b)%c) print(((a%c)+(b%c))%c..
9/1. 이항 계수 1 (백준 11050번) https://www.acmicpc.net/problem/11050 #python import sys def fact(num) : ans = 1 for i in range(1, num+1) : ans *= i return ans n, k = map(int, sys.stdin.readline().split()) ans = fact(n) / (fact(k) * fact(n-k)) print(int(ans)) 저번에 풀었던 문제이지만 저번에 풀 때는 함수를 만들어서 하지 않았기 때문에, 이번에는 함수를 만들어서 활용하는 방법으로 풀어봤다. (정답) 9/3. 카드2 (백준 2164번) https://www.acmicpc.net/problem/2164 #python i..
EDOC 코딩테스트 전날인 오늘, 코딩테스트 예비소집에 있는 문제들을 풀었다. 전부 파이썬으로 풀었고, 총 1시간 20분 걸렸다. A. A+B (백준 1000번) https://www.acmicpc.net/problem/1000 import sys a, b = map(int, sys.stdin.readline().split()) print(a+b) (정답) B. 꼬마 정민 (백준 11382번) https://www.acmicpc.net/problem/11382 import sys a, b, c = map(int, sys.stdin.readline().split()) print(a+b+c) (정답) C. 단어 길이 재기 (백준 2743번) https://www.acmicpc.net/problem/2743 ..
깃허브에 코딩 문제 풀기용 레포지토리를 만들었다. 깃허브에 올리는 연습을 하기 위해... 후후 깃헙과 친해질거다!! 8/28. 직각삼각형 (백준 4153번) https://www.acmicpc.net/problem/4153 #python import sys while True : a, b, c = map(int, sys.stdin.readline().split()) if a + b + c == 0 : exit() max = c if a > max : max = a if b > max : max = b if a*a + b*b + c*c == max*max*2 : print("right") else : print("wrong") (정답) 8/28. 블랙잭 (백준 2798번) https://www.acmicp..
파이썬으로 스택 구현하기 (by 리스트) class Stack : def __init__(self) : self.items = [] def push(self, item) : self.items.append(item) def pop(self) : if not self.isEmpty() : return self.items.pop() else : print("Stack underflow") exit() def peek(self) : return self.items[-1] def isEmpty(self) : return not self.items def size(self) : return len(self.items) def clear(self) : self.items = [] 파이썬으로 큐 구현하기 (by 리스..