Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python

  1. 파이썬으로 처음 n개의 홀수의 합 구하는 프로그램

    숫자 n이 하나 주어졌을 때, 처음 n개의 양의 홀수의 합을 구하는 문제를 살펴보겠습니다.예를 들어 입력값이 7이라면, [1 + 3 + 5 + 7 + 9 + 11 + 13] = 49 이므로 출력 결과는 49가 됩니다.문제 해결 접근 방법이 문제는 반복문을 활용해 다음과 같은 단계로 해결할 수 있습니다.n이 0이면 0을 반환합니다.변수를 초기화합니다: sum = 1, count = 0, temp = 1count가 n-1보다 작은 동안 아래 과정을 반복합니다.temp에 2를 더해 다음 홀수를 만듭니다.sum에 temp를 더합니다.cou

  2. Python으로 리스트에서 홀수 자릿수를 가진 요소 개수 구하기

    양의 정수로 이루어진 리스트 nums가 주어졌을 때, 자릿수가 홀수인 요소의 개수를 구하는 문제입니다.예를 들어 입력이 [1, 300, 12, 10, 3, 51236, 1245]라면 결과는 4가 됩니다. 각 숫자의 자릿수를 살펴보면 다음과 같습니다.1 → 1자리 (홀수) ✔300 → 3자리 (홀수) ✔12 → 2자리 (짝수)10 → 2자리 (짝수)3 → 1자리 (홀수) ✔51236 → 5자리 (홀수) ✔1245 → 4자리 (짝수)따라서 자릿수가 홀수인 요소는 1, 300, 3, 51236의 총 4개입니다.해결 접근 방법이 문제는 다

  3. Python으로 버전 번호 비교하기: 새 버전이 실제로 최신인지 확인하는 프로그램

    소프트웨어 개발에서 두 패키지의 버전을 비교해야 하는 상황은 매우 흔합니다. 이번 글에서는 major.minor.patch 형식의 두 버전 문자열이 주어졌을 때, 새 버전(newer)이 이전 버전(older)보다 실제로 최신인지 확인하는 Python 프로그램을 만들어 보겠습니다.문제 정의예를 들어, older = 7.2.2, newer = 7.3.1이 입력으로 주어진다면, newer가 더 높은 버전이므로 출력은 True가 됩니다.버전 번호는 점(.)을 기준으로 세 부분으로 나뉩니다.major: 큰 업데이트 또는 호환성이 깨지는 변경

  4. Python으로 숫자 목록에서 합이 홀수가 되는 유효한 쌍의 개수 구하기

    양의 정수로 이루어진 리스트 nums가 주어졌을 때, i < j를 만족하는 인덱스 쌍 (i, j) 중에서 nums[i] + nums[j]의 합이 홀수가 되는 유효한 쌍의 개수를 구하는 문제입니다.예를 들어 입력이 [5, 4, 6]이라면 출력은 2가 됩니다. [5, 4]의 합은 9, [5, 6]의 합은 11로, 두 쌍 모두 합이 홀수이기 때문입니다.해결 접근 방식두 수의 합이 홀수가 되려면 반드시 하나는 홀수, 다른 하나는 짝수여야 합니다. 즉, 홀수 + 짝수 = 홀수라는 성질을 활용하면 다음과 같은 간단한 공식을 도출할 수 있

  5. 파이썬으로 문자열의 문자를 사용해 만들 수 있는 길이 k의 회문 개수 구하기

    알파벳 문자로 이루어진 문자열 s와 숫자 k가 주어졌을 때, 문자열 s에 포함된 문자만을 사용하여 만들 수 있는 길이 k의 회문(palindrome) 개수를 구하는 문제입니다. 각 문자는 필요하다면 여러 번 재사용할 수 있습니다.예를 들어, s = xy이고 k = 4라고 가정해 보겠습니다. 이때 만들 수 있는 회문은 [xxxx, yyyy, xyyx, yxxy]의 4가지이므로 출력값은 4가 됩니다.문제 해결 접근 방법회문의 핵심 성질을 활용하면 이 문제를 매우 효율적으로 해결할 수 있습니다. 회문은 앞에서 읽으나 뒤에서 읽으나 같은

  6. 파이썬으로 주어진 문자열이 팬그램(Pangram)인지 확인하는 프로그램

    팬그램(Pangram)은 영어 알파벳 26개 글자를 모두 최소 한 번 이상 사용한 문장을 의미합니다. 이번 글에서는 주어진 문자열 s가 하나의 문장을 나타낼 때, 영어 알파벳의 모든 글자가 최소 한 번씩 사용되었는지 판별하는 파이썬 프로그램을 작성해 보겠습니다.예를 들어 입력 문자열이 The grumpy wizards make toxic brew, for the evil queen and Jack이라면, 알파벳 전체가 포함되어 있으므로 출력 결과는 True가 됩니다.문제 해결 접근 방법먼저 문자열 s의 모든 글자를 소문자로 변환합니

  7. 파이썬(Python)으로 균형 잡힌 괄호 문자열을 최대 개수의 그룹으로 분할하는 프로그램

    균형 잡힌 괄호 (와 )로만 이루어진 문자열 s가 주어졌을 때, 이 문자열을 가장 많은 수의 균형 잡힌 그룹으로 분할하는 것이 목표입니다. 여기서 균형 잡힌 그룹이란, 그룹 내부에서 열림 괄호와 닫힘 괄호의 개수가 서로 일치하고 어떤 위치에서도 닫힘 괄호가 먼저 나오지 않는 완결된 단위를 의미합니다.예를 들어 입력이 (()())()(())라면, 출력은 다음과 같습니다.[(()()), (), (())]문제 해결 접근 방식이 문제는 괄호의 균형 상태를 추적하는 카운터 변수 하나만 있으면 선형 시간에 해결할 수 있습니다. 핵심 아이디어는

  8. 파이썬으로 파스칼의 삼각형 n번째 행 구하는 프로그램

    파스칼의 삼각형이란?숫자 n이 주어졌을 때, 파스칼의 삼각형에서 n번째(0 인덱스 기준) 행을 찾아 반환하는 것이 이 글의 목표입니다. 파스칼의 삼각형은 다음과 같은 규칙으로 만들어집니다.맨 위 행에는 숫자 1이 하나만 있습니다.그다음 행부터는 바로 위 행의 왼쪽 위 숫자와 오른쪽 위 숫자를 더한 값으로 채워집니다.삼각형의 앞부분 몇 개 행은 다음과 같습니다.예를 들어 입력값이 4라면 출력은 [1, 4, 6, 4, 1]이 됩니다.문제 해결 접근 방법이 문제는 이전 행의 값을 이용해 다음 행을 차례대로 만들어가는 방식으로 해결할 수

  9. Python으로 비밀번호 유효성 검사하기: 조건 충족 여부 확인 프로그램

    문자열 s가 하나의 비밀번호를 나타낸다고 가정해 봅시다. 이때 해당 비밀번호가 정해진 기준을 모두 충족하는지 확인하는 프로그램을 작성해야 합니다.비밀번호가 충족해야 할 규칙비밀번호의 길이는 최소 8자 이상, 최대 20자 이하여야 합니다.비밀번호에는 최소 한 개의 숫자가 포함되어야 합니다.비밀번호에는 최소 한 개의 소문자와 최소 한 개의 대문자가 포함되어야 합니다.비밀번호에는 최소 한 개의 특수문자(예: !#$%&\()*+,-./:;<=>?@[\\]^_`{|}~)가 포함되어야 합니다.비밀번호에는 탭이나 줄바꿈 문자

  10. 파이썬으로 센트 금액을 통화 형식(예: 1,234.56)으로 변환하는 프로그램

    양의 정수 n이 주어졌다고 가정해 보겠습니다. 이 값은 우리가 가지고 있는 금액을 센트(cents) 단위로 나타낸 것입니다. 이때 이 숫자를 사람이 읽기 쉬운 통화 형식, 즉 달러와 센트를 구분하고 천 단위마다 콤마가 들어간 형태로 변환하는 것이 이번 문제의 목표입니다.예를 들어 입력값이 n = 123456이라면, 출력은 1,234.56이 되어야 합니다.문제 해결 접근 방법이 문제는 다음 단계를 따라 해결할 수 있습니다.입력받은 숫자 n을 문자열로 변환합니다.문자열의 길이가 2보다 작다면, 0.0 뒤에 원래 값을 붙여 반환합니다.

  11. Python으로 프로그래머를 서로 인접하지 않게 배치할 수 있는지 확인하는 프로그램

    문제 소개컨벤션 센터에 입장하려는 프로그래머가 총 n명 있다고 가정해 보겠습니다. 또한 숫자로 이루어진 리스트가 하나 주어지는데, 여기서 1은 이미 자리에 앉아 있는 프로그래머를, 0은 빈자리를 의미합니다. 이때 중요한 조건은 두 프로그래머가 서로 바로 옆에 나란히 앉을 수 없다는 것입니다. 우리가 확인해야 할 것은 n명의 프로그래머가 모두 컨벤션에 입장할 수 있는지 여부입니다.예를 들어 입력이 n = 2이고 convention = [0, 0, 1, 0, 0, 0, 1]이라면, 양옆이 모두 비어 있는 자리에 프로그래머를 차례로 배치

  12. 파이썬으로 같은 첫 글자를 공유하는 최장 연속 단어 구간 찾기

    문제 개요소문자로만 이루어진 단어 목록이 주어졌을 때, 모든 단어가 같은 첫 글자를 공유하는 가장 긴 연속 부분 리스트의 길이를 찾아야 합니다.예를 들어 입력이 ["she", "sells", "seashells", "on", "the", "seashore"]라면 출력은 3이 됩니다. "she", "sells", "seashells" 세 단어가 서로 인접해 있고, 첫 글자가

  13. 파이썬으로 1부터 n까지 범위의 n+1개 숫자에서 중복 요소 찾기

    문제 설명길이가 n + 1인 숫자 리스트 nums가 있다고 가정해 보겠습니다. 이 숫자들은 모두 1, 2, ..., n 범위 안에서 선택된 값입니다. 비둘기집 원리(Pigeonhole Principle)에 따르면, n개의 서로 다른 값으로 n + 1개의 숫자를 만들려면 반드시 하나 이상의 중복이 존재할 수밖에 없습니다. 우리의 목표는 바로 그 중복된 값을 찾아 반환하는 것입니다.예를 들어 입력이 [2, 1, 4, 3, 3]이라면, 출력은 3이 됩니다.접근 방법: 합의 차이 활용하기이 문제는 수학적 성질을 이용하면 아주 간단하게 해결

  14. Python으로 첫 번째 요소와 마지막 요소가 같은 부분 리스트 개수 구하기

    숫자로 이루어진 리스트 nums가 주어졌을 때, 첫 번째 요소와 마지막 요소가 동일한 부분 리스트(sublist)의 개수를 구하는 문제입니다.예를 들어 입력이 nums = [10, 15, 13, 10]이라면 결과는 5가 됩니다. 조건을 만족하는 부분 리스트는 다음과 같습니다.[10][15][13][10][10, 15, 13, 10]접근 방법길이가 1인 부분 리스트는 항상 첫 번째 요소와 마지막 요소가 같으므로, 먼저 전체 리스트 길이만큼 개수를 초기화합니다. 이후 각 숫자의 등장 빈도를 세고, 같은 숫자가 v번 등장한다면 그중 두

  15. 파이썬으로 모든 과목 수강 가능 여부 확인하기 – DFS 순환 검사 알고리즘

    문제 개요2차원 행렬이 주어졌을 때, matrix[i]는 i번째 과목을 수강하기 위해 먼저 이수해야 하는 선수과목들의 목록을 의미합니다. 이때 주어진 조건 하에서 모든 과목을 수강하는 것이 가능한지 판별하는 프로그램을 작성해야 합니다.예를 들어 입력이 다음과 같다고 가정해 보겠습니다.matrix = [[1], [2], []]이 경우 출력은 True입니다. 선수과목이 없는 과목 2부터 수강한 뒤, 과목 1, 마지막으로 과목 0을 수강하면 되기 때문입니다.핵심 아이디어: 순환(Cycle) 검출이 문제는 방향 그래프에서 순환이 존재하는지

  16. 파이썬으로 두 문자열을 잘라 회문을 만들 수 있는지 확인하는 방법

    길이가 같은 두 문자열 S와 T가 주어졌을 때, 두 문자열을 같은 위치에서 잘라서 S의 앞부분과 T의 뒷부분을 이어 붙였을 때 회문(팰린드롬)이 되는지 확인하는 문제입니다.예를 들어 입력이 S = cat, T = dac라고 가정해 보겠습니다. 두 문자열을 각각 c + at과 d + ac로 자르면, S의 앞부분 c와 T의 뒷부분 ac를 합친 cac은 앞에서 읽으나 뒤에서 읽으나 같은 회문이므로 결과는 True가 됩니다.알고리즘 접근 방식이 문제는 다음 단계를 따라 해결할 수 있습니다.n := 문자열 a의 길이로 설정i := 0으로 초

  17. Python으로 인코딩된 메시지를 디코딩하는 방법의 수를 구하는 프로그램

    문제 개요알파벳과 숫자가 다음과 같이 매핑되어 있다고 가정해 보겠습니다. a = 1, b = 2, ..., z = 26. 이때 인코딩된 메시지 문자열이 주어지면, 이 메시지를 디코딩할 수 있는 방법이 총 몇 가지인지 계산해야 합니다.예를 들어, 입력이 message = 222라면 출력은 3이 됩니다. 이 메시지는 bbb, bv, vb의 세 가지 방식으로 디코딩할 수 있기 때문입니다.해결 접근 방식이 문제는 동적 계획법(Dynamic Programming)을 활용하면 효율적으로 해결할 수 있습니다. 각 위치까지의 디코딩 가능한 경우의

  18. 파이썬으로 이진 트리에서 짝수 값을 가진 모든 잎 노드 삭제하기

    이진 트리가 하나 있다고 가정해 보겠습니다. 우리는 값이 짝수인 모든 잎(리프) 노드를 반복적으로 삭제하는 작업을 수행할 것입니다. 잎 노드를 모두 제거한 후 트리에 루트만 남아 있고 그 값마저 짝수라면, 루트 노드 역시 삭제됩니다.예를 들어 입력 트리가 다음과 같다면,출력 결과는 다음과 같습니다.이 문제를 해결하기 위해 다음과 같은 단계를 따릅니다.solve() 함수를 정의합니다. 이 함수는 루트 노드(root)를 매개변수로 받습니다.root가 null이면 null을 그대로 반환합니다.root의 왼쪽 자식 := solve(root

  19. 파이썬으로 양 끝 문자를 제거 후 재삽입해 목표 문자열 만들기: 최소 연산 횟수 구하기

    문제 소개두 문자열 S와 T가 주어졌다고 가정해 보겠습니다. 두 문자열은 서로 같은 문자들을 다른 순서로 배열한 관계, 즉 순열(permutation)입니다. 허용된 연산은 단 하나입니다. S의 맨 앞 또는 맨 뒤 문자를 제거한 뒤, 문자열의 임의의 위치에 다시 삽입하는 것입니다. 이 연산만으로 S를 T로 변환할 때 필요한 최소 연산 횟수를 구하는 것이 이 문제의 목표입니다.예를 들어 입력이 s = "zyvxw", t = "vwxyz"라면 출력은 3입니다. 실제 변환 과정은 다음과 같습니다.w를

  20. 파이썬으로 중복 정수를 없애는 게임의 최소 턴 수 구하기

    문제 소개정렬된 숫자 리스트 nums를 가지고 두 친구 아말(Amal)과 비말(Bimal)이 게임을 한다고 가정해 봅시다. 게임 규칙은 다음과 같습니다.각 턴에서 아말은 리스트에서 임의의 숫자 세 개를 선택합니다.비말이 선택된 숫자 중 하나를 먼저 제거하고, 그다음 아말이 하나를 더 제거합니다.리스트는 처음에 홀수 개의 원소로 시작하며, 매 턴 정확히 두 개의 원소가 사라집니다.아말은 리스트에 중복된 원소가 남지 않도록 만드는 데 필요한 턴 수를 최소화하려 하고, 비말은 반대로 턴 수를 최대화하려 합니다. 두 사람이 모두 최선의 전

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:174/450  20-컴퓨터/Page Goto:1 168 169 170 171 172 173 174 175 176 177 178 179 180