분류 전체보기
-
22. 암호 만들기Programmers 2023. 6. 26. 15:54
최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가버리는 황당한 상황에 직면한 조교들은 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. (abc는 가능성이 있는 암호이나 bac는 아니다) 새 보안 시스템에서 조교들이 암호로 사용했을 법한 문자는 C가지가 있다. 이 알파벳을 입수한 민식, 영식 형제는 조교들의 방에 침투하기 위해 암호를 추측해보려고 한다. from itert..
-
21. N개의 최소공배수Programmers 2023. 6. 25. 16:31
문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. def solution(arr): answer = max(arr) mx = [i for i in arr if answer%i != 0] for x in mx: for i in range(2,..
-
20. 소수 만들기Programmers 2023. 6. 24. 14:40
문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. from itertools import combinations def solution(nums): num = [sum(i) for i in list(combinations(nums, 3))] answer = len(num) for n in num:..
-
-
[OS] File System에서의 레코드와 필드Computer Science 2023. 6. 22. 12:53
* 자료의 구성단위 : Bit < Nibble < Byte < Word < Field < Record < File 순서 1. Bit : 자료 표현의 최소단위로서 0 혹은 1로 표현 2. Nibble : 4개의 비트가 모일 시 Nibble이라고 부름(1 Nibble = 4 Bit) 3. Byte : 문자 표현의 최소 단위. 8bit = 1 Byte 4. Word : 컴퓨터가 한 번에 처리할 수 있는 명령 단위로, OS에 따라 1 Word가 상이하다. 5. Field : 파일 구성의 최소 단위 6. Record : 하나 이상의 필드가 모여 구성 7. File : 하나 이사의 레코드가 모여 구성 고객ID 이름 주소 연락처 적립금 A0001 정소화 부천시 원미구 032-xxx-xxxx 4000 B0002 김현준..
-
19. 가장 가까운 같은 글자Programmers 2023. 6. 21. 16:41
문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있..
-
18. 다음 큰 숫자Programmers 2023. 6. 21. 11:44
예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. def solution(n): x = format(n, 'b') cnt = x.count('1') while True: n += 1 x = format(n, 'b') if x.count('1') == cnt: break return n
-
17. 이진 변환 반복하기Programmers 2023. 6. 20. 16:39
문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. def s..