본문 바로가기

전체 글229

[프로그래머스] Level1 비밀지도(with python) https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(n, arr1, arr2): new3 = [] new4 = [] for i in arr1: new = list(bin(i)[2:]) #지도1 이진수 for i in range((n-len(new))): new.insert(0,'0') new3.append(new) for i in arr2: new2 = list(bin(i)[2:]) #지도2 이진수 f.. 2023. 2. 7.
[프로그래머스] Level1 K번째 수(with python) https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(array, commands): answer = [] for command in commands: new_array = sorted(array[command[0]-1:command[1]]) answer.append(new_array[command[2]-1]) print(answer) return answer 이렇게 풀긴 했는데, 다른 분이 푼 코드를 .. 2023. 2. 7.
[프로그래머스] Level1 체육복(with python) https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(n, lost, reserve): new_lost = set(lost) - set(reserve) new_reserve = set(reserve) - set(lost) for i in new_lost: if i-1 in new_reserve: new_reserve.remove(i-1) elif i+1 in new_reserve: new_reserve... 2023. 2. 7.
[백준] 15469번 N과 M (1)(with python) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 내가 작성한 코드 from itertools import permutations n, m = map(int, input().split()) arr = [] for i in range(1,n+1): arr.append(i) for j in permutations(arr, m): for i in j: print(i, end=' ') print() 1. 1부터 M까지의 수를 list에 삽입한다 .. 2023. 2. 4.
[백준] 2108번 통계학(with python) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 1. 내가 작성한 풀이 from collections import Counter import sys n = int(sys.stdin.readline()) arr = [] for i in range(n): arr.append(int(sys.stdin.readline())) arr = sorted(arr) #산술평균 print(int(round(sum(arr)/n,0))) #중앙값 print(arr[n//2]) #.. 2023. 2. 2.
[알고리즘] 정렬 + 문제풀이 버블정렬 O(N^2) loop를 돌며 인접한 데이터 간의 swap 연산 진행 특정 루프의 전체 영역에서 swap이 한 번도 진행되지 않으면 정렬이 완료된 것 n = int(input()) num = [] for i in range(n): a = int(input()) num.append(a) for i in range(n-1): for j in range(n-1-i): if num[j] > num[j+1]: num[j],num[j+1] = num[j+1],num[j] for i in num: print(i) 선택정렬 O(N^2) 남은 정렬 부분의 가장 작은(or 가장 큰) 데이터를 선택해 가장 앞에 있는 데이터와 바꿈 arr = [7,5,9,0,3,1,6,2,4,8] for i in range(len(a.. 2023. 2. 2.
[프로그래머스] Level1 최대공약수와 최소공배수(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(n, m): arr = [] for i in range(min(n,m),0,-1): if n%i == 0 and m%i == 0: arr.append(i) break for i in range(max(n,m),n*m+1): if i%n == 0 and i%m == 0: arr.append(i) break return arr 유클리드 호재법이 잘 기억 .. 2023. 2. 2.
[백준] 11651번 좌표 정렬하기 2(with python) https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) arr = [] for i in range(n): arr.append(list(map(int, sys.stdin.readline().split()))) result = sorted(arr, key = lambda x:(x[1],x[0])) for.. 2023. 2. 2.
[백준] 10816번 숫자 카드2(with python) https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 1. 내가 작성한 코드 from collections import Counter n = int(input()) s_card = list(map(int, input().split())) s_card1 = sorted(set(s_card)) cnt = Counter(s_card) m = int(input()) total_card = list(map(int, input.. 2023. 2. 2.