반응형

전체 글 142

문자열, 그리고 len(), split(), join()

Python에서 문자열은 텍스트 데이터를 처리하는 데 사용되는 중요한 자료형이며, 또한 파이썬의 문자열은 불변(immutable)하다. 문자열을 처리하기 위한 여러 가지 함수가 있는데, 이번에는 길이와 관련된 len(), 분리와 관련된 split(), 결합과 관련된 join()에 대해서 알아볼 것이다. - len()len() 함수는 주어진 문자열의 길이를 반환한다. 이 길이에는 문자열에 포함된 문자들의 총 개수를 의미한다. 공백이나 특수 문자도 길이에 포함된다. 또한 다른 시퀀스 타입에서도 len()을 사용할 수 있다.string = "Hello, Python!"length = len(string)print(length) >>> 결과: 14- split()len()과 달리 문자열에 특정한 함수도 있..

파이썬/개념 2025.05.18

백준 10951번 A+B (5) - 간단하지만 조심

백준 10951번 / A+B : https://www.acmicpc.net/problem/10951 그동안 풀어온 A+B를 구하는 문제들과 비슷하며, 무엇보다 바로 직전에 풀어본 10952번보다 간단한 문제이다. 다만 종료 조건이 명시되어있지 않아 그냥 무한루프를 사용했다간 런타임 에러가 발생한다.입력의 끝에 명확한 종료 신호가 주어지지 않고, 파일의 끝(EOF)으로 판단해야 할 때는 try-except 구문을 사용해야 한다. 문제 풀이 흐름은 다음과 같다.while True:구문을 사용해 무한 루프를 시작한다.루프 내부의 try 블록 안에서 두 정수 A와 B를 입력받고, A+B를 출력한다.만약 input() 함수가 더 이상 읽을 입력이 없어서 EOFError를 발생시키면, except EOFError:..

파이썬/예제 2025.05.18

백준 10952번 A+B (4) - 반복문 조건에 주의

백준 10952번 / A+B : https://www.acmicpc.net/problem/10952 이 문제는 그동안 풀어본 A+B를 출력하는 프로그램과 같으나, 차이점이 있다면 테스트 케이스의 개수가 미리 주어지지 않고, 입력의 마지막 줄에는 0 두 개가 들어오며 이 입력이 주어지면 프로그램을 종료해야 한다는 것이다. 입력의 종료 조건이 주어졌으므로, while 반복문을 사용하여 이 조건을 만족할 때까지 계속해서 입력을 받고 처리하는 방식으로 접근할 수 있다. 풀이의 흐름은 다음과 같다. 먼저 두 정수 A와 B를 한 번 입력받는다.while 루프의 조건으로 A와 B가 둘 다 0이 아닌 동안 반복하도록 설정한다.(문제에 따르면, "입력의 마지막에는 0 두 개가 들어온다"고 했으므로, a != 0 and ..

파이썬/예제 2025.05.18

백준 2439번 별 찍기 (2) - 띄어쓰기에 주의

백준 2439번 / 별 찍기 (2) : https://www.acmicpc.net/problem/2439 이 문제는 앞서 풀었던 2438번 문제와 비슷하게 N번째 줄에 별 N개를 찍는 것이지만, 이번에는 오른쪽을 기준으로 정렬하여 출력해야 하는 문제이다. 즉, 첫째 줄에는 N-1개의 공백 후 별 1개, 둘째 줄에는 N-2개의 공백 후 별 2개, ..., N번째 줄에는 공백 없이 별 N개를 찍는 방식이다. 입력으로 1과 100 사이의 정수 n이 주어진다. 공백과 별 모두를 사용해야 함게 주의하며 문제를 풀어나가는 흐름은 다음과 같다.출력할 총 줄의 수 N을 입력받는다.1부터 N까지 반복하는 루프를 만든다- 해당 줄에 필요한 별의 개수는 i개이다.- 해당 줄에 필요한 공백의 개수는 N-i개이다.계산된 개수만..

파이썬/예제 2025.05.18

백준 2438번 별 찍기 (1) - 간단한 문자열

백준 2438번 / 별 찍기 : https://www.acmicpc.net/problem/2438 이 문제는 첫째 줄에는 별 1개, 둘째 줄에는 별 2개,,,, N번째 줄에는 별 N개를 찍는 프로그램을 만드는 것이다. 입력으로 1과 100 사이의 정수 n이 주어진다. N번 반복하면서 각 줄에 해당하는 개수만큼 별을 출력하는 것이 핵심이다. 파이썬에서 문자열에 정수를 곱하면 해당 문자열이 정수만큼 반복되는 특성을 활용할 수 있다. 프로그램을 풀어나가는 흐름은 다음과 같다.출력할 줄의 수 N을 입력받는다.1부터 N까지 반복하는 루프를 만든다. 이 루프의 현재 반복 횟수가 해당 줄에 출력할 별의 개수가 된다.각 반복마다, 현재 줄 번호만큼 별 문자('*')를 반복하여 문자열을 생성한다.생성된 별 문자열을 출력..

파이썬/예제 2025.05.18

백준 11022번 A+B (3) - 역시나 f_string

백준 11022번 / A+B : https://www.acmicpc.net/problem/11022 이 문제 또한 앞서 풀어본 백준 11021번 문제와 유사하다. 다만, 각 테스트 케이스의 출력 형식에 "Case #x: A + B = C" 와 같이 케이스 번호를 명시해야 하고, 덧셈식을 표현해야 한다는 차이점이 있다. 이때 케이스 번호는 1부터 시작한다. 문제를 풀어나가는 과정은 다음과 같다. 테스트 케이스의 개수(n)를 입력받는다.n번 반복하면서, 현재 케이스 번호를 기억한다.두 정수 A와 B를 입력받는다."Case #x: A + B = C" 형식에 맞춰 출력한다. 이때 x는 현재 케이스 번호, A와 B는 입력받은 값, C는 A+B의 결과이다.이 문제도 역시나 f_string을 사용하면 간단히 해결할 ..

파이썬/예제 2025.05.18

백준 11021번 A+B (2) - f_string을 사용하자

백준 11021번 / A+B : https://www.acmicpc.net/problem/11021 이 문제 또한 앞서 풀어본 백준 10950번 문제와 유사하다. 다만, 각 테스트 케이스의 출력 형식에 "Case #x: "와 같이 케이스 번호를 명시해야 한다는 차이점이 있다. 이때 케이스 번호는 1부터 시작한다. 문제를 풀어나가는 과정은 다음과 같다.테스트 케이스의 개수를 입력받는다.n번 반복하면서, 각 반복에서 현재가 몇 번째 케이스인지 기억한다.두 정수 A와 B를 입력받는다."Case #x: A+B" 형식에 맞춰 출력한다. 이때 x는 현재 케이스 번호이다.이 문제 또한 f_string을 사용하면 간단히 해결할 수 있다.n = int(input())for i in range(n): a,b = ma..

파이썬/예제 2025.05.18

백준 15552번 빠른 A+B - map()과 readline()

백준 15552번 / 빠른 A+B : https://www.acmicpc.net/problem/15552 이 문제는 백준 10950번 문제와 유사하게 여러 테스트 케이스에 대해 두 정수 A와 B의 합을 구하는 것이지만, "빠른"이라는 수식어가 붙은 만큼 입력 방식에 주의해야 하는 문제이다. Python에서 많은 양의 입력을 받을 때 input() 함수는 sys.stdin.readline()에 비해 느릴 수 있어 시간 초과가 발생할 수 있다. 따라서 이번에는 readline()를 이용하여 a+b를 수행하는 코드를 만들어볼 것이다. 두 가지 코드를 만들어보았다. 첫 번째는 readline()만 사용한 코드이다.import sysN = int(input())for i in range(N): a,b = ..

파이썬/예제 2025.05.18

백준 25304번 영수증 - map()의 사용에 주의하라

백준 25304번 / 영수증 : https://www.acmicpc.net/problem/25304 이 문제는 구매한 물건들의 총 금액과 영수증에 적힌 총 금액이 일치하는지 검사하는 프로그램을 만드는 것이다. 영수증에는 구매한 각 물건의 가격과 개수, 그리고 구매한 물건들의 총 금액이 적혀있다. 이 문제를 풀어내는 과정은 다음과 같다. 영수증에 적힌 총 금액 X를 입력받는다.구매한 물건의 종류의 수 N을 입력받는다.N번 반복하면서 각 물건의 가격 a와 개수 b를 입력받는다.물건의 가격과 개수를 곱한 값(a * b)을 계속해서 누적하여 합계(실제 총 금액)를 구한다.반복이 끝나면, 계산된 실제 총 금액과 영수증에 적힌 총 금액 X를 비교한다.일치하면 "Yes"를, 일치하지 않으면 "No"를 출력한다.내가 ..

파이썬/예제 2025.05.18

백준 8393번 합 - 간단한 반복문

이 문제는 어느 숫자 n이 주어졌을 때, 1부터 n까지의 합을 구하는 프로그램을 만드는 것이다.n은 1과 10000사이의 숫자라는 조건이 있다. 내가 만든 프로그램은 아래와 같다.n = int(input())sum = 0for i in range(1, n + 1): sum += iprint(sum) 프로그램의 구조는 다음과 같다.사용자로부터 n값을 입력받는다.합을 저장하는 변수(sum)를 0으로 초기화한다.1부터 n까지 반복하면서, 각 숫자를 sum에 더해준다.반복이 끝나면 sum을 출력한다.

파이썬/예제 2025.05.18
반응형