Algorithm 97

[백준/파이썬] 10989번 수 정렬하기3

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 틀린코드❌ import sys input = sys.stdin.readline nums = [] n = int(input()) for i in range(n): num = int(input()) nums.append(num) for i in sorted(nums): print(i) 문제만 보면 어려운 문제가 아니다. 하지만, 시간초과, 메모리초과 때문에 고려해야할 것이 있는 것 같다. import sys input ..

Algorithm/Problems 2022.11.08

[백준/파이썬] 2563번 색종이

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net paper = [[0] * 100 for _ in range(100)] n = int(input()) for _ in range(n): a, b = map(int, input().split()) for i in range(a, a+10): for j in range(b, b+10): paper[i][j] = 1 cnt = 0 for box in paper: cnt += box.count(1) prin..

Algorithm/Problems 2022.11.07

[백준/파이썬] 2566번 최댓값

https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net nums = [] for i in range(9): num = list(map(int, input().split())) nums.append(num) max_num = 0 tmp_i = 0 tmp_j = 0 for i in range(9): for j in range(9): if nums[i][j] > max_num: max_num = nums[i][j] tmp_i = i tmp_j = j print(max_num)..

Algorithm/Problems 2022.11.07

[백준/파이썬] 2738번 행렬 덧셈

https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net n, m = map(int, input().split()) A, B = [], [] for i in range(n): a = list(map(int, input().split())) A.append(a) for i in range(n): b = list(map(int, input().split())) B.append(b) sum = 0 for i in range(n): for j i..

Algorithm/Problems 2022.11.07

[프로그래머스] 위장 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import combinations def solution(clothes): cb = [] tmp = [] for i in range(len(clothes)): tmp.append(clothes[i][1]) for i in range(len(set(tmp))): cb.append(list(combinations(tmp,i))) if len(set(tmp)) == 1: r..

Algorithm/Problems 2022.11.02

[프로그래머스] 전화번호 목록 Python

https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 짠 코드 😥 def solution(phone_book): answer = True sorted(phone_book) for i in range(len(phone_book)): for j in range(1, len(phone_book)): if len(phone_book[i]) < len(phone_book[j]): if phone_book[i] in phone_book[j][:len(ph..

Algorithm/Problems 2022.10.28

[프로그래머스] 폰켓몬 python

https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import numpy as np def solution(nums): num = np.unique(nums) if (len(nums)/2) len(num): answer = len(num) return answer 엉망진창 내가 짠 코드😥 numpy 모듈 중 unique() 함수를 사용하여 주어진 배열에서 고유값만 리턴해주었다. 이때, 내가 데려갈 수 있는 폰켓몬 수가 더 크다면 고유값의 수를 리턴..

Algorithm/Problems 2022.10.26

[프로그래머스] 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(participant, completion): answer='' for idx, p in enumerate(participant): if p in completion: continue else: answer = participant[idx] return answer 아무생각 없이 짠 내 코드😥 이름이 같은 사람이 여러명 있고 그 중 한사람만 완주하는 경우에는 이 코드가 적용..

Algorithm/Problems 2022.10.26

이진 탐색 알고리즘

순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 이진 탐색: 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (시작점, 끝점, 중간점을 이용해 탐색 범위를 설정한다.) 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산횟수는 log2N에 비례한다. 즉, 시간 복잡도는 O(logN)을 보장한다. # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보..

Algorithm/algorithm 2022.08.24

[프로그래머스] K번째 수

문제 url: https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(array, commands): answer = [] for com in commands: arr = array[com[0]-1:com[1]] arr.sort() answer.append(arr[com[2]-1]) return answer def solution(array, commands): return list(map(lamb..

Algorithm/Problems 2022.08.21