본문 바로가기

알고리즘, 자료구조

[백준| 단계별로 풀어보기 5단계 문자열 | Python] 2908번 상수 1. 문제 목적 백준 2908번 '상수' 문제는 주어진 두 숫자를 거꾸로 읽고, 그 중 더 큰 숫자를 출력하는 문제입니다. 이 문제의 목적은 문자열 조작과 기본적인 숫자 처리를 연습하여, 문자열을 다루는 기술과 숫자 비교 방법을 강화하는 데 있습니다. 2. 핵심 개념 핵심 메서드 및 개념: 문자열 슬라이싱 [::-1]: 문자열을 거꾸로 뒤집기 위해 사용되는 파이썬의 슬라이싱 기법입니다. 이는 문자열의 시작부터 끝까지 역순으로 접근하도록 합니다. max() 함수: 여러 값 중 최대값을 반환하는 내장 함수로, 두 개 이상의 숫자 중에서 가장 큰 값을 찾는데 사용됩니다. 3. 문제 해결 절차 입력 받기: 두 개의 숫자를 문자열로 입력받습니다. 숫자 뒤집기: 입력받은 각 숫자를 문자열로 취급하여 거꾸로 뒤집습니.. 더보기
[백준| 단계별로 풀어보기 5단계 문자열 | Python] 11720번 숫자의 합 1. 문제 목적 이 문제의 목적은 문자열 내의 각 문자(숫자)를 정수로 변환하고, 이들을 합하여 결과를 출력하는 과정에서 문자열 처리와 반복문 사용법을 익히는 데 있습니다. 2. 핵심 개념 문자열: 문자의 연속으로, 파이썬에서는 문자열을 큰따옴표(" ") 또는 작은따옴표(' ')로 묶어 표현합니다. 정수 변환: 문자열 내의 숫자 문자를 실제 정수 값으로 변환하기 위해 int() 함수를 사용합니다. for 문: 하나씩 문자를 순회하며 각 문자를 정수로 변환하고 누적합을 구하기 위해 사용됩니다. 3. 문제 해결 절차 사용자로부터 숫자의 개수를 입력받습니다(이 과정은 주어진 문제에서 중요하지 않으므로 생략할 수 있습니다). 숫자로 이루어진 문자열을 입력받습니다. 문자열의 각 문자를 순회하며 각각을 정수로 변환.. 더보기
[백준| 단계별로 풀어보기 5단계 문자열 | Python] 9086번 문자열 1. 문제 목적 이 문제의 목적은 문자열 인덱싱과 슬라이싱을 통해 문자열 내 특정 위치의 문자에 접근하는 방법을 익히는 데 있습니다. 이는 문자열 데이터를 처리하고 조작하는 기본적이면서도 필수적인 기술입니다. 2. 핵심 개념 문자열 인덱싱: 파이썬에서 문자열은 인덱스를 통해 각 문자에 접근할 수 있는 시퀀스입니다. 인덱스는 0부터 시작합니다. 예: 'Python'[0]은 'P', 'Python'[-1]은 'n' 슬라이싱: 문자열의 일부를 "잘라내어" 새로운 문자열을 생성하는 방법입니다. [시작:끝:간격] 형태로 사용됩니다. 간격은 생략 가능하며, 시작 또는 끝 인덱스가 생략되면 각각 문자열의 시작 또는 끝을 의미합니다. 3. 문제 해결 절차 테스트 케이스의 수를 입력받습니다. 각 테스트 케이스에 대해 문.. 더보기
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 10811번 바구니 뒤집기 1. 문제 목적 이 문제의 주된 목적은 리스트 조작 기술과 슬라이스를 통한 부분 리스트의 뒤집기를 학습하는 데 있습니다. 문제를 해결함으로써, 리스트의 특정 부분을 선택하고, 그 부분을 수정하는 방법을 익히게 됩니다. 이는 데이터 구조와 알고리즘을 다루는 데 있어 필수적인 기술 중 하나입니다. 2. 핵심 개념 리스트 슬라이싱: 리스트의 일부분을 선택하는 기술입니다. 리스트[start:end] 형태로 사용하며, start 인덱스부터 end-1 인덱스까지의 요소를 선택합니다. 리스트 뒤집기: 선택된 리스트 부분을 반대 순서로 배치합니다. 이를 위해 슬라이스와 [::-1] (뒤집기) 연산을 사용합니다. 3. 문제 해결 절차 초기 바구니 상태를 리스트로 표현합니다. 주어진 명령의 수만큼 반복하여 각 명령을 처리.. 더보기
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 3052번 나머지 1. 문제 목적 이 문제의 목적은 모듈로 연산과 자료 구조를 활용하는 방법을 학습하는 데 있습니다. 모듈로 연산은 프로그래밍에서 자주 사용되는 연산 중 하나로, 특정 값으로 나눈 나머지를 구하는 연산입니다. 이 문제를 통해 모듈로 연산의 활용 방법과, 중복을 제거하며 데이터를 효율적으로 관리하는 자료구조인 세트(set)의 사용법을 익힐 수 있습니다. 2. 핵심 개념 모듈로 연산(%): 특정 수로 나눈 나머지를 구하는 연산입니다. 이 문제에서는 입력된 수를 42로 나눈 나머지를 구합니다. 세트(Set): 파이썬의 기본 자료구조 중 하나로, 중복된 값을 허용하지 않으며 순서가 없는 컬렉션입니다. 세트를 사용하여 중복 없이 나머지의 종류를 쉽게 관리할 수 있습니다. 3. 문제 해결 절차 사용자로부터 10개의 .. 더보기
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 10813번 공 바꾸기 1. 문제 목적 이 문제는 리스트의 인덱싱과 요소 교환을 통해 파이썬에서의 기본적인 데이터 조작 방법을 학습하는 데 중점을 둡니다. 이를 통해 사용자는 데이터 구조에 저장된 요소에 접근, 수정하는 기본적인 방법을 익히게 됩니다. 2. 핵심 개념 리스트 인덱싱: 리스트에서 특정 위치의 요소에 접근하는 방법. 리스트[인덱스]의 형태로 사용됩니다. 파이썬의 인덱스는 0부터 시작합니다. 요소 교환: 파이썬에서 두 변수의 값을 교환하는 가장 간단한 방법은 a, b = b, a의 형태로 사용하는 것입니다. 이 문제에서는 이 방법을 사용하여 두 바구니의 공을 교환합니다. 3. 문제 해결 절차 초기 설정: N개의 바구니를 준비하고 각 바구니에 1부터 N까지 순서대로 번호를 부여합니다. 교환 명령 실행: 주어진 교환 명.. 더보기
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 10870번 공 넣기 1. 문제 목적 백준 10810번 문제는 간단히 말해, 공을 바구니에 넣는 문제입니다. 여기서는 N개의 바구니가 일렬로 놓여 있고, 각각의 바구니에 0번부터 N-1까지 번호가 매겨져 있습니다. 문제의 목적은 주어진 명령에 따라 특정 구간의 바구니에 특정 번호의 공을 넣는 방식으로, 배열 또는 리스트의 특정 구간에 값을 할당하는 방법을 익히는 데 있습니다. 2. 핵심 개념 리스트: 파이썬의 기본 자료구조 중 하나로, 여러 값을 순서대로 저장할 수 있습니다. 이 문제에서는 각 바구니를 리스트의 각 요소로 표현합니다. 슬라이싱: 리스트에서 특정 범위의 요소를 선택하는 방법입니다. 문제에서 특정 구간의 바구니에 공을 넣을 때 사용됩니다. 반복문: 특정 작업을 반복적으로 수행하게 하는 구문입니다. 이 문제에서는 .. 더보기
[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 2562번 최댓값 1. 문제 목적 9개의 서로 다른 자연수가 주어졌을 때, 이 중 최대값을 찾고, 그 최대값이 몇 번째 수인지를 알아내는 문제입니다. 이 문제를 통해 학습할 수 있는 주요 목적은 리스트의 기본적인 활용 방법과, 리스트 내에서 최대값을 찾는 과정 및 그 위치를 식별하는 방법을 익히는 것입니다. 2. 핵심 개념 리스트: Python에서 여러 데이터를 연속적으로 관리할 수 있는 기본적인 자료 구조입니다. 본 문제에서는 9개의 자연수를 저장하고 관리하는 데 사용됩니다. max() 함수: Python 내장 함수로, 주어진 리스트나 여러 인자 중에서 최대값을 반환합니다. index() 메서드: 리스트에서 특정 값의 위치를 찾을 때 사용하는 메서드입니다. 찾고자 하는 값의 첫 번째 인덱스를 반환합니다. 3. 문제 해결.. 더보기