알고리즘 18

[프로그래머스/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

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

1. 원소들이 다음의 순으로 배열에 저장되어 있다 12 70 30 20 55 25 1) 선택 정렬 12 70 30 20 55 25 12 25 30 20 55 | 70 12 25 30 20 | 55 70 12 25 20 | 30 55 70 12 20 | 25 30 55 70 12 | 20 25 30 55 70 12 20 25 30 55 70 2) 버블 정렬 12 70 30 20 55 25 12 30 70 20 55 25 12 30 20 70 55 25 12 30 20 55 70 25 12 30 20 55 25 | 70 12 20 30 55 25 | 70 12 20 30 25 | 55 70 12 20 25 | 30 55 70 3) 삽입 정렬 12 70 | 30 20 55 25 12 30 70 | 20 55 ..

알고리즘 2023.10.23

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

2) T(n) = T(n-1) + 1 + T(n-1) = 2T(n-1)+1 여기서, T(n-1)은 n-1개의 원반을 옮기는데 필요한 이동 횟수입니다. 1은 n번째 원반을 옮기는 횟수입니다. 따라서, T(n)은 T(n-1)의 두 배에 1을 더한 값과 같습니다. 3) 점화식 T(n) = 2^n - 1을 풀면 T(n)은 얼마인지 구할 수 있습니다. 여기서, ^는 거듭제곱을 나타냅니다. 따라서, T(n)은 2^n - 1입니다. (0 표기법 사용)

알고리즘 2023.10.23