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

Python

  1. Python으로 문자열의 모든 문자가 고유한지 확인하는 방법

    문자열 s가 주어졌을 때, 이 문자열을 구성하는 모든 문자가 서로 중복되지 않고 고유한지 확인해야 합니다.예를 들어, 입력 문자열이 world라면 각 문자가 한 번씩만 등장하므로 결과는 True가 됩니다.문제 해결 접근 방식이 문제는 파이썬의 set(집합) 자료구조를 활용하면 매우 간단하게 해결할 수 있습니다. 집합은 중복된 요소를 허용하지 않는 특성이 있기 때문입니다. 해결 절차는 다음과 같습니다.문자열 s의 모든 문자를 요소로 하는 새로운 집합(set_var)을 생성합니다.집합 set_var의 크기가 원본 문자열 s의 길이와 같

  2. Python으로 숫자가 2의 거듭제곱인지 확인하는 방법

    0보다 큰 수가 주어졌을 때, 그 수가 2의 거듭제곱인지 판별하는 문제를 살펴보겠습니다.예를 들어 입력값이 1024라면, 1024는 2^10이므로 출력 결과는 True가 됩니다.문제 해결 접근 방식이 문제는 다음과 같은 단계로 해결할 수 있습니다.n이 1보다 클 동안 반복합니다.반복할 때마다 n을 2로 나눕니다.반복이 끝난 후 n이 1이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.2의 거듭제곱(예: 1, 2, 4, 8, 16...)을 계속 2로 나누면 결국 정확히 1에 도달하기 때문입니다. 반면 2의 거듭제곱이 아

  3. Python으로 3진수 문자열을 10진수 정수로 변환하는 방법

    0, 1, 2만으로 구성된 3진법 숫자를 나타내는 문자열 s가 주어졌을 때, 이를 동일한 값을 가지는 10진수 정수로 변환하는 문제입니다.예를 들어 입력이 10122라면 출력은 98이 되어야 합니다.접근 방법이 문제는 호너의 방법(Horners method)과 유사한 방식으로 효율적으로 해결할 수 있습니다. 문자열을 왼쪽부터 오른쪽으로 한 자릿수씩 읽으면서, 누적값에 3을 곱한 뒤 현재 자릿수를 더해주면 됩니다.누적값 ans를 0으로 초기화합니다.문자열 s의 각 자릿수 c에 대해 다음을 반복합니다.ans = 3 × ans + c모든

  4. 파이썬으로 행렬에서 행과 열의 최댓값인 숫자 개수 구하기

    하나의 행렬(matrix)이 주어졌을 때, 자신이 속한 행과 열에서 모두 가장 큰 값을 가지는 정수의 총 개수를 구하는 문제입니다.문제 예시예를 들어 입력이 다음과 같은 행렬이라고 가정해 보겠습니다.132465157이 경우 출력은 2가 됩니다. 그 이유는 6과 7만이 각각 자신이 속한 행과 열에서 동시에 최댓값이기 때문입니다.해결 접근 방법이 문제는 다음 단계를 통해 해결할 수 있습니다.입력받은 행렬을 mat 변수에 저장합니다.r_maxes: 각 행(row)별 최댓값들의 목록을 생성합니다.c_maxes: 각 열(column)별 최댓

  5. 밥의 파이썬 게임: 모든 숫자를 짝수로 만드는 최소 턴 수 구하기

    밥의 파이썬 게임 문제란? 친구 밥(Bob)이 혼자 하는 숫자 게임이 있다고 가정해 보겠습니다. 밥은 nums라는 숫자 리스트를 가지고 있으며, 매 턴마다 리스트에서 두 개의 원소를 선택한 뒤, 선택한 두 수의 합과 같은 값을 가지는 하나의 양의 정수로 교체합니다. 배열 안의 모든 숫자가 짝수가 되는 순간 밥은 승리를 선언할 수 있습니다. 우리가 구해야 할 값은 밥이 승리를 선언하기 위해 진행해야 하는 최소 턴 수입니다. 만약 아무리 시도해도 모든 수를 짝수로 만들 수 없다면 -1을 반환하면 됩니다. 예시 입력이 [2, 3, 4,

  6. Python으로 책 페이지 매기기 구현하기

    Python에서 책 페이지 매김 문제 이해하기문자열로 이루어진 리스트 book이 있다고 가정해 보겠습니다. 여기서 페이지 번호(0부터 시작하는 인덱스)와 page_size가 주어지면, 해당 페이지에 포함된 단어들의 목록을 찾아야 합니다. 만약 요청한 페이지가 존재하지 않는 범위라면, 빈 리스트를 반환하면 됩니다.예를 들어, 입력이 다음과 같다고 해봅시다.book = [hello, world, programming, language, python, c++, java]page = 1page_size = 3이 경우 출력은 [languag

  7. 파이썬 알고리즘 풀이: 보스 전투 시뮬레이션으로 패배한 보스 행 제거하기

    문제 개요파이썬으로 간단한 보스 전투 시뮬레이션 문제를 풀어보겠습니다. 0과 1로만 구성된 리스트 fighters와, 여러 개의 이진 리스트로 이루어진 행렬 bosses가 주어진다고 가정해 봅시다.fighters 리스트에서 값 1은 전사(fighter)를 의미합니다.bosses 행렬의 각 행에서 값 1은 보스(boss)를 의미합니다.전사의 수가 특정 행의 보스 수보다 많으면, 그 행의 보스들은 패배한 것으로 간주되어 제거됩니다.즉, 최종적으로는 패배하지 않은 보스 행만 남긴 새로운 행렬을 반환해야 합니다.입력 예시와 동작 원리예를

  8. 파이썬 알고리즘: 예산 안에서 구매할 수 있는 최대 자동차 대수 구하기

    판매 중인 자동차들의 가격 목록과 예산 k가 주어졌을 때, 우리가 구매할 수 있는 최대 자동차 대수를 구하는 문제를 생각해 봅시다.예를 들어 입력이 [80, 20, 10, 30, 80]이고 k = 85라면, 출력은 3이 됩니다. 가격이 10, 20, 30인 세 대의 자동차를 구매하면 총액이 60으로 예산 범위 안에 들기 때문입니다.문제 해결 접근 방식이 문제는 그리디(Greedy) 알고리즘으로 효율적으로 해결할 수 있습니다. 핵심 아이디어는 가장 저렴한 차부터 구매하면 최대한 많은 차를 살 수 있다는 것입니다. 다음 단계로 진행합니

  9. 파이썬으로 구현하는 시저 암호(Caesar Cipher): 알고리즘 풀이와 예제

    소문자로만 이루어진 문자열 s와 정수 k(오프셋 값)가 주어졌다고 가정해 보겠습니다. 우리가 해결해야 할 문제는 문자열 s의 모든 문자를 알파벳상에서 k칸 뒤에 있는 문자로 치환하는 것입니다. 단, 문자가 z를 넘어갈 경우에는 다시 알파벳 처음인 a부터 이어지도록 순환(wrap-around) 처리해야 합니다.예를 들어 입력이 hello이고 k = 3이라면, 각 문자가 3칸씩 뒤로 밀려나므로 결과는 khoor가 됩니다.풀이 접근 방법이 문제는 아래와 같은 단계로 해결할 수 있습니다.하나의 문자 c를 인자로 받는 shift() 함수를

  10. 파이썬으로 단어 목록을 카멜 케이스(camelCase)로 변환하는 방법

    문제 개요여러 개의 단어로 이루어진 리스트가 주어졌을 때, 이 단어들을 하나로 이어 붙여 카멜 케이스(camelCase) 형식의 문자열을 만들어야 한다고 가정해 보겠습니다.예를 들어 입력이 [Hello, World, Python, Programming]이라면, 출력은 다음과 같습니다.helloWorldPythonProgramming카멜 케이스란 각 단어의 첫 글자만 대문자로 표기하고 단어 사이에 공백 없이 연결하는 표기법입니다. 단, 맨 앞 단어의 첫 글자는 소문자로 시작하는 것이 특징입니다.해결 접근 방법이 문제는 다음 단계를 따

  11. 파이썬으로 구현하는 세포 융합 문제 완벽 가이드

    문제 개요여러 세포의 크기를 담고 있는 숫자 리스트 cells가 주어집니다. 각 반복 단계에서 가장 큰 두 세포 a와 b가 다음 규칙에 따라 상호작용합니다.만약 a = b라면, 두 세포는 모두 소멸합니다.그렇지 않으면 두 세포는 하나로 합쳐지며, 새로운 크기는 ((a + b) / 3)의 내림값(floor)이 됩니다.이 과정을 반복한 후 마지막에 남은 세포의 크기를 구하고, 만약 남은 세포가 없다면 -1을 반환해야 합니다.예시로 이해하기입력이 [20, 40, 40, 30]이라면 결과는 16이 됩니다.첫 번째 반복에서 크기가 40인 두

  12. 파이썬으로 리스트의 방향 전환 횟수 구하기

    문제 설명숫자로 이루어진 리스트 nums가 주어졌을 때, 기울기가 양수에서 음수로 바뀌거나 음수에서 양수로 바뀌는 지점, 즉 방향이 전환되는 횟수를 구하는 문제입니다.예를 들어 입력이 [2, 4, 10, 18, 6, 11, 13]이라면 출력은 2가 됩니다. 값이 10에서 증가하다가 감소로 방향을 바꾸고(양수 → 음수), 다시 6에서 감소하다가 증가로 방향을 바꾸기(음수 → 양수) 때문입니다.해결 방법이 문제는 각 요소가 이웃한 두 요소와 비교했을 때 극대값(봉우리) 또는 극소값(골짜기)인지 확인하면 해결할 수 있습니다. 구체적인 절

  13. Python 리스트에서 고유 값마다 ID 할당하기

    Python으로 데이터를 처리하다 보면 리스트나 딕셔너리의 각 요소를 고유하게 식별해야 하는 경우가 자주 발생합니다. 이때 각 요소에 고유한 ID를 부여하게 되는데, 문제는 동일한 값이 여러 번 반복될 때입니다. 반복되는 값에는 매번 새로운 ID가 아니라 동일한 ID가 할당되어야 합니다. 이 글에서는 Python에서 중복 값을 하나의 고유 ID로 묶어 할당하는 두 가지 방법을 소개합니다.방법 1: enumerate()와 OrderedDict.fromkeys() 조합enumerate() 함수는 시퀀스에 카운터(인덱스)를 붙여주는 함수

  14. Python 리스트 요소에 고유 ID 할당하는 2가지 방법

    데이터 처리 과정에서 리스트에 담긴 요소들을 서로 구분해야 하는 경우가 자주 발생합니다. 이럴 때 각 요소에 고유한 ID를 부여하면 중복 여부와 관계없이 모든 요소를 명확하게 식별할 수 있습니다. Python은 내장 함수만으로도 이 작업을 손쉽게 처리할 수 있으며, 대표적인 방법으로 enumerate + set 조합과 itertools.count + map 조합이 있습니다.enumerate와 set을 활용한 방법enumerate 함수는 반복 가능한 객체의 각 요소에 순번을 매기는 역할을 합니다. 다만 리스트에 중복된 값이 존재한다면

  15. Python 리스트에서 고유한 하위 리스트 개수 세는 방법

    파이썬(Python) 리스트는 하위 리스트(sublist)를 포함할 수 있습니다. 하위 리스트란 더 큰 리스트 안에 중첩된 또 다른 리스트를 의미합니다. 이번 글에서는 주어진 리스트 안에 있는 고유한 하위 리스트의 개수를 세는 방법을 두 가지로 살펴보겠습니다.1. Counter 클래스 활용하기Counter는 딕셔너리(Dictionary)의 서브클래스로, 각 요소와 그 출현 횟수를 손쉽게 추적할 수 있도록 도와줍니다. 요소는 딕셔너리의 키(key)로 저장되고, 해당 요소의 개수는 값(value)으로 저장되는 순서 없는 컬렉션입니다.아

  16. Python 딕셔너리 키를 리스트로 가져오는 3가지 방법

    많은 프로그램에서 딕셔너리의 키를 추출하는 작업은 해당 딕셔너리에 의존하는 다른 프로그램의 중요한 입력값으로 활용됩니다. 이 글에서는 Python 딕셔너리의 키를 리스트 형태로 가져오는 다양한 방법을 살펴보겠습니다.1. dict.keys() 메서드 사용가장 직관적이고 간단한 방법입니다. keys()는 딕셔너리에 기본으로 내장된 메서드로, 모든 키를 반환합니다. 여기에 list() 함수를 적용하면 손쉽게 리스트로 변환할 수 있습니다.예제Adict = {1:Sun,2:Mon,3:Tue,4:Wed} print(주어진 딕셔너리 :\n ,A

  17. Python 리스트에서 첫 번째 요소와 마지막 요소 가져오는 방법

    Python 프로그래밍을 하다 보면 리스트의 첫 번째 요소와 마지막 요소를 가져와야 하는 상황이 자주 발생합니다. 이때 주의할 점은 리스트의 길이를 고려하면서 원하는 요소에 접근해야 한다는 것입니다. 다행히 Python에서는 인덱스를 활용하는 다양한 방법으로 이 작업을 간단하게 처리할 수 있습니다. 아래에서 대표적인 세 가지 방법을 살펴보겠습니다.1. 인덱스만 사용하기Python 리스트에서 첫 번째 요소는 항상 인덱스 0에 할당되고, 마지막 요소는 음수 인덱스 -1로 접근할 수 있습니다. 따라서 이 두 인덱스 값을 리스트에 직접 적

  18. Python에서 각 하위 리스트의 첫 번째 요소 추출하기

    파이썬에서 리스트는 그 안에 또 다른 리스트를 요소로 포함할 수 있습니다. 이처럼 중첩된 리스트를 하위 리스트(sublist)라고 부르며, 데이터를 계층 구조로 다룰 때 자주 사용됩니다. 이 글에서는 주어진 리스트에서 각 하위 리스트의 첫 번째 요소만 추출하는 여러 가지 방법을 예제 코드와 함께 살펴보겠습니다.1. for 반복문 사용하기가장 직관적이고 기본적인 방법입니다. 각 하위 리스트를 순회하면서 인덱스 0에 해당하는 항목을 하나씩 가져오는 방식으로, 초보자도 쉽게 이해할 수 있습니다.예제 코드Alist = [[Mon, 1],

  19. Python에서 각 하위 리스트의 마지막 요소 추출하는 방법

    파이썬에서 리스트는 그 안에 또 다른 리스트를 요소로 가질 수 있습니다. 이처럼 중첩된 리스트를 하위 리스트(sublist)라고 부르며, 실무에서 이중 리스트 구조를 자주 다루게 됩니다. 이 글에서는 주어진 리스트에서 각 하위 리스트의 마지막 요소만 추출하는 다양한 방법을 예제와 함께 살펴봅니다.1. for 반복문 사용가장 직관적이고 기본적인 방법입니다. 각 하위 리스트를 순회하면서 인덱스 -1에 해당하는 값을 가져옵니다. 파이썬에서 음수 인덱스는 뒤에서부터 요소에 접근하므로, -1은 항상 마지막 요소를 가리킵니다.예제Alist =

  20. Python 리스트에서 고유한 값만 추출하는 3가지 방법

    Python에서 리스트(list)는 대괄호 [] 안에 여러 항목을 담는 자료구조로, 서로 다른 데이터 타입의 요소를 함께 저장할 수 있으며 중복된 값도 포함할 수 있습니다. 이 글에서는 리스트에서 중복을 제거하고 고유한(unique) 값만 추출하는 다양한 방법을 소개합니다.1. append()와 not in 조건 활용하기가장 기본적인 방법은 빈 리스트를 하나 만든 뒤, 원본 리스트의 요소를 순회하면서 새 리스트에 아직 존재하지 않는 경우에만 추가하는 것입니다. for 반복문과 not in 조건을 함께 사용하여, 들어오는 요소가 새

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:166/450  20-컴퓨터/Page Goto:1 160 161 162 163 164 165 166 167 168 169 170 171 172