알고리즘 20

파이썬 구현 코드 암기용

# 딕셔너리 value 값으로 정렬 (x[0]은 key, x[1]은 value로 정렬)sorted_dic=sorted(dic.items(), key=lambda x:x[1], reverse=True)# 딕셔너리의 key를 리스트에 넣기 answer = [item[0] for item in sorted_dic]#2차원 리스트 만들기answer = [[0] * i for _ in range(k))]#set 선언;set은 {(0,0,0), (1,1,1)} 가능 visited = set()visited.add()#set에 포함되지 않은 값인지 확인하기if (x, y) not in visited#스택 %나머지 //몫 /나눗셈stack=[]# max_size = 10push() #파이썬X 알고리즘 과정 isFul..

알고리즘 2025.02.24

행렬의 곱

문제2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요제한 조건행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다.입출력 예내 풀이def solution(arr1, arr2): # 답으로 낼 answer의 리스트 만들기 anser = [[0] * len(arr2[0]) for _ in range(len(arr1))] #arr1의 행(hor)이랑 열(ver) 갯수를 알아보자 hor=len(arr1) ver=len(arr2[0]) for i in range(hor): #..

알고리즘 2025.02.24

[프로그래머스/Python] 소수 찾기

문제 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 틀린 풀이 - 시간 통과를 못함! # import sys # count=0 # N=int(sys.stdin.readline().strip()) # for i in range(2, N+1): # for j in range(2, i): # if(i%j==0): # b..

알고리즘 2024.04.07

[프로그래머스/Python] 제일 작은 수 제거하기

문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 내 풀이 def solution(arr): if(len(arr)===1): return [-1] else: idx=index(min(arr)) arr.pop(idx) return arr 필요개념 # 배열 인덱스 찾기 배열명.index(원하는 문자) #특정 인덱스 삭제 ar..

알고리즘 2024.04.07

[백준 2941-Python] 크로아티아 알파벳

크로아티아 알파벳 실버V 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 177171 78850 66345 44.471% 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력..

알고리즘 2024.04.02

[백준 1920-Python] 수 찾기

수 찾기 실버4 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 258034 80050 53125 30.061% 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 예제 입력..

알고리즘 2024.03.31

[인프런-파이썬 알고리즘 문제풀이 입문] 대표값

문제 N명의 학생의 수학성적이 주어집니다. N명의 학생들의 평균(소수 첫째자리 반올림)을 구하고, N명의 학생 중 평균에 가장 가까운 학생은 몇 번째 학생인지 출력하는 프로그램을 작성하세요. 답이 2개일 경우 성적이 높은 학생의 번호를 출력하세요. 만약 답이 되는 점수가 여러 개일 경우 번호가 빠른 학생의 번호를 답으로 한다. --> 평균이 74고 73, 75 순서대로 있으면 75 한 학생의 번호 출력하기 입력 첫줄에 자연수 N(5

알고리즘 2024.03.31

[백준 11004-Python] K번째 수

K번째 수 성공 실버V 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 59441 20687 14581 41.436% 문제 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다. 둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109) 출력 A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다. 예제 입력 1 5 2 4 1 2 3 5 예제 출력 1 2 풀이 import sys N, K = map( int, sys.stdin.readline().split() ) list=list(map(..

알고리즘 2024.03.31

쉽게 배우는 알고리즘-06연습문제

직접 푼 것으로 틀릴 수 있음 주의 I. Red Black Tree: 1. 다음을 해결하여라 ① RedBlack tree에 A,L,O,R,I,T,H,M이 차례대로 insertion되는 과정을 나타내시오 ② ①에서 완성된 RedBlack tree에서 A,L,O,R,I,T,H,M이 차례대로 deletion되는 과정을 나타내시오 2. 다음을 해결하여라 ① RedBlack tree에 S,O,F,T,W,A,R,E이 차례대로 insertion되는 과정을 나타내시오 ② ①에서 완성된 RedBlack tree에서 S,O,F,T,W,A,R,E 이 차례대로 deletion되는 과정을 나타내시오 II. 2-3 트리 1. 다음과 같은 2-3 트리가 있다. 다음과 같은 동작이 순서대로 이루어질 때 2-3 트리 모양을 각각 그리..

알고리즘 2023.10.23