CodeUp 기초5-2(문자열)
기초5-1(1차원 배열)의 기억력 테스트 2 문제를 메모리 문제로 계속 해결하지 못해서 구글링을 계속하며 메모리를 줄일 수 있는 방법에 대해 조사했었다. 그 문제는 결국 해결하지 못했지만, 조사하며 알게된 방법을 자주 써먹고자 한다. 그래서 input()
대신 sys.stdin.readline().rstrip()
을, print()
대신 sys.stdout.write()
을 사용하고 반복문 대신 comprehension과 map()
을 사용했다.
1131 : 문자 출력하기
입력된 문자를 그대로 출력한다.
import sys
c = sys.stdin.readline().rstrip()
sys.stdout.write(c)
0
1132 : 문자열 출력하기
한 단어를 입력받아 출력한다.
import sys
word = sys.stdin.readline().rstrip()
sys.stdout.write(word)
0
1133 : 공백이 있는 문자열 입출력
공백이 있는 문자열을 입력받아 출력해보자.
import sys
sen = sys.stdin.readline().rstrip()
sys.stdout.write(sen)
0
1295 : 알파벳 대소문자 변환
주어지는 문장의 대문자를 소문자로, 소문자를 대문자로 변경하는 프로그램을 작성하라.
import sys
sen = sys.stdin.readline().rstrip()
ans = list(map(lambda n: n.upper() if n.islower() else n.lower(), sen))
for c in ans:
sys.stdout.write(c)
CodeChallenge2014withMSP cODEcHALLENGE2014WITHmsp
1406 : love
영단어 하나가 입력된다.
그 단어가 love이면 I love you. 를 출력하시오.
import sys
word = True if sys.stdin.readline().rstrip() == 'love' else False
print("I love you." if word else '')
1407 : 문자열 출력하기 1
길이(글자수)가 100이하인 문자열을 입력받아 공백을 제거하고 출력하시오.
import sys
sen = sys.stdin.readline().rstrip()
sys.stdout.write(sen.replace(' ', ''))
0
1408 : 암호 처리
인터넷 서비스들은 대부분 아이디와 패스워드(password)를 이용한다.
이때 사용되는 패스워드는 여러 가지 방법으로 암호화되어 저장된다.
[어떤 인터넷 서비스의 2가지 암호화 방법]
-
입력받은 문자의 ASCII 코드값 + 2
-
(입력받은 문자의 ASCII 코드값 * 7) % 80 + 48
사용자의 패스워드를 2가지 방법으로 암호화한 결과를 출력하는 프로그램을 작성하시오.
import sys
pw = list(map(ord, sys.stdin.readline().rstrip()))
pw1 = list(map(lambda n: chr(n+2), pw))
pw2 = list(map(lambda n: chr((n * 7) % 80 + 48), pw))
print(*pw1, sep='')
print(*pw2, sep='')
TEST VGUV L3EL
1410 : 올바른 괄호 1 (괄호 개수 세기)
프로그래밍을 할 때 가장 중요한 것 중 하나가 괄호의 개수를 맞추는 것이다.
즉, 여는 괄호가 있으면 항상 닫는 괄호가 있고, 닫는 괄호가 있으면 여는 괄호도 있어야 한다.
올바른 괄호를 확인하기 위해 가장 기본적인 방법 중 하나는 여는 괄호와 닫는 괄호의 개수를 세는 것이다.
소괄호로 이루어진 문자열을 주어지면 괄호의 개수를 출력하는 프로그램을 작성하시오.
import sys
sen = sys.stdin.readline().rstrip()
print(sen.count('('), sen.count(')'))
((())()(())) 6 6
1414 : C언어를 찾아라
길이가 100 이하인 문자열로 구성된 암호문을 발견하였다.
이 암호문은 예전에 작성된 것으로 판단된다.
이 문자열에서 “C”라는 문자와 “CC”라는 문자가 몇 개 있는지 조사하고자 한다.
길이가 100 이하인 문자열을 입력받아, “C”라는 문자와 “CC”라는 문자가 각각 몇 개 존재하는지 알아내는 프로그램을 작성하시오. (단, C, CC는 대소문자를 구분하지 않는다. 즉, “cC”는 “CC”와 같다.)
import sys
sen = sys.stdin.readline().rstrip().lower()
count = 0
for i in range(len(sen)-1):
if sen[i:i+2] == 'cc':
count += 1
print(sen.count('c'), count)
CccCCcCCCccCVCcVcCVvCCVccVcVCc 23 16
1418 : t를 찾아라
어떤 문자열이 있을 때 문자 t의 위치를 모두 찾아 출력하시오.
import re
text = input()
for m in re.finditer('t', text):
print(m.end(), end=' ')
test 1 4
1419 : love 2
영어 문장이 입력된다.
그 문장에서 love가 몇 번 나오는지 출력하시오.
sen = input()
print(sen.count('love'))
love lovely 2
1733 : I.O.I
정보 선생님은 프로젝트 걸그룹 IOI를 매우 싫어 한다.
그 이유는 국제정보올림피아드(International Olympiad in Informatics:IOI)의 이름과 동일해서,
인터넷 검색창에 IOI를 입력할 경우 더 이상 국제정보올림피아드에 대한 정보를 찾기가 힘들어 졌기 때문이다.
입력으로 IOI가 입력될 경우, IOI is the International Olympiad in Informatics.를 출력하는 프로그램을 작성하시오.
만약 IOI가 아닌 다른 글자가 들어오는 경우, I don’t care.를 출력한다.
print('IOI is the International Olympiad in Informatics.' if input() == 'IOI' else "I don't care.")
IOI IOI is the International Olympiad in Informatics.
1734 : welcome!
당신은 웹사이트 제작자이다.
ID를 입력하고 엔터를 누르면 환영 메시지를 띄우려고한다.
예를 들어 ID가 anaki 인 경우, welcome! anaki를 출력한다.
환영 메시지를 출력하는 프로그램을 작성하시오.
print("welcome! {}".format(input()))
anaki welcome! anaki
1754 : 큰 수 비교
우리는 숫자를 int나 long long으로 숫자를 처리하였다.
이번엔 그보다 더 큰 숫자를 비교해보자.
최대 100자리의 두 숫자가 입력되면 작은수와 큰 수를 차례대로 출력하시오.
a, b = map(int, input().split())
print(b, a) if a > b else print(a, b)
1 2 1 2
1990 : 3의 배수 판별하기
자연수 n이 입력되면 3의 배수인지 아닌지 판별하시오.
print(1 if int(input()) % 3 == 0 else 0)
3321 1
2721 : 순환 문자열
영어 소문자로 구성된 단어 S1, S2, S3가 있을때,
S1의 마지막 문자가 S2의 첫 글자와 같고,
S2의 마지막 글자가 S3의 첫 글자와 같고,
S3의 마지막 글자가 S1의 첫 글자와 같으면 순환 문자열이라고 한다.
예를 들어 turtle error robot 인 경우 순환 문자열이다.
세 단어가 주어졌을 때 순환 문자열이면 good을 출력, 아니면 bad를 출력하시오.
s1 = input()
s2 = input()
s3 = input()
print("good" if s1[-1] == s2[0] and s2[-1] == s3[0] and s3[-1] == s1[0] else "bad")
turtle error robote bad
댓글남기기