본문 바로가기

연구노트/Python

파이썬 숫자 및 문자열 처리 기초

 

파이썬 숫자 및 문자열 처리 기초

1번 문제 : 소수 찾기

파이썬 숫자 및 문자열 처리 기초

입력

  • 첫째 줄에 자연수의 개수 N이 주어진다. (1 ≤ N ≤ 100)
  • 둘째 줄에 공백으로 구분된 N개의 자연수가 주어진다. (각 수는 1 이상 1,000 이하)

출력

  • 주어진 수 중 소수의 총 개수를 출력한다.

 

예제

## 예제
4
1 3 5 7
→ 3
 

 

 

풀이

## 풀이
import random

N = int(input("숫자를 입력하세요: "))
if 1<= N <= 100:
    sec = []
    while len(sec) < N:
        num = random.randint(1,10)
        if num not in sec:
            sec.append(num)                  # 중복하지 않는 난수 집합 만들기

    P = []
    for i in range(N):
        for j in range(2,sec[i]+1):
            if j == sec[i]:
                P.append(sec[i])
            if sec[i]%j == 0:
                break                       # 소수 집합 
        Number = len(P)
    print(sec)
    print(P)
    print(Number)                           # 출력 결과물
else:
    print("다시 실행해 주세요.")
 

 

설명

우선 코드가 잘 실행 되는지 확인하기 위해 난수를 1부터 10까지 범위만 설정하였습니다.

j번째 자기 자신과 같다면 해당 수를 소수 집합에 추가를 하고 나머지가 있다면 추가하는 것을 그만합니다.

그렇게 소수 리스트를 만들고 리스트 글자 길이를 세서 출력하도록 합니다.

 

 

 

2번 문제 : 숫자 빈도 분석 및 최빈값 판별
파이썬 숫자 및 문자열 처리 기초

세 자연수 A, B, C가 주어졌을 때, A × B × C의 결과 숫자 안에 0부터 9까지 숫자가 각각 몇 번 등장했는지 출력하고

가장 많이 등장한 숫자와 횟수를 출력하세요. (여러 개일 경우, 숫자가 작은 것을 출력)

 

입력

  • 세 줄에 걸쳐 자연수 A, B, C가 각각 주어진다. (1 ≤ A, B, C < 1000)

출력

  1. 0부터 9까지 각 숫자의 등장 횟수 (10줄)
  2. "가장 많이 나온 숫자: X (Y번)" 형식의 출력

 

예제

## 예제
150
266
427
→ 
숫자 등장횟수
	0 3
	1 1
	2 0
	3 2
	4 0
	5 0
	6 0 
	7 2
	8 0
	9 0
가장 많이 나온 숫자: 0 (3번)
 

 

풀이

## 풀이
A = int(input("A를 입력하세요: "))
B = int(input("B를 입력하세요: "))
C = int(input("C를 입력하세요: "))
P = str(A*B*C)
Con = []
for i in range(len(P)):
    Con.append(P[i])                                  #곱한 수를 문자열로 나누어서 Count에 저장

Num = []
for i in range(10):
    K = Con.count(str(i))
    Num.append(K)                                           # 숫자갯수 세기


frequency = Num.index(max(Num))
print("숫자 등장횟수")
for m in range(10):
    print(m," ",Num[m])
print("가장많이 나온 숫자: %d (%d번)" % (frequency ,max(Num)))      #출력
 

 

설명

곱한 숫자를 문자열로 바꿉니다. 이후 각 숫자의 개수를 세어 출력하도록 만들었습니다.

 

3번 문제 : 숫자 뒤집기 & 회문판별
파이썬 숫자 및 문자열 처리 기초

 

자연수 N이 주어졌을 때,

이 숫자를 뒤집은 값을 출력하고,

뒤집은 값이 원래 숫자와 같은지 판별하여 같으면 "회문입니다."

다르면 "회문이 아닙니다."를 출력하는 프로그램을 작성하시오.

 

입력

자연수 N (10 ≤ N ≤ 10000)

출력

첫째 줄에 뒤집은 숫자, 둘째 줄에 "회문입니다." 또는 "회문이 아닙니다."

 

예제

## 예제
121
→ 121 회문입니다.
108
→ 801 회문이 아닙니다.
 

풀이

## 풀이
N = int(input("숫자를 입력하세요: "))
if 10<= N <= 10000:
    l1 = list(str(N))
    l1.reverse()
    reverse_N = ''.join(l1)                           #숫자 리버스


    if N == int(reverse_N):
        print(int(reverse_N))
        print("회문입니다.")
    else:
        print(int(reverse_N))
        print("회문이 아닙니다.")                
else:
    print("다시 실행하세요.")
 

 

설명

reverse를 사용하여 문자를 거꾸로 뒤집어 다시 결합한 후 회문인지 판별하도록 코드를 작성하였습니다.


 

 

 

TEL (062-226-1777, 010-9891-7244), E-mail (ipmes@ipmes.co.kr)

임베디드 시스템 | PCB 설계 제작 | 펌웨어 개발 | 신호처리 | 응용프로그램

궁금할 땐 네이버 톡톡하세요!

 

 

 

'연구노트 > Python' 카테고리의 다른 글

파이썬 배열, 문자열, 반복문 활용 코드  (0) 2025.09.29
파이썬 반복문 코드  (2) 2025.06.26
Python 정규 표현식  (0) 2025.05.08
파이썬 프로그래밍 기초(3)  (0) 2025.04.30
파이썬 프로그래밍 기초(2)  (0) 2025.04.30