BOJ/Python (192) 썸네일형 리스트형 [BOJ/백준] 3449 - 해밍 거리 (Python) 문제문제링크해밍 거리는 두 숫자의 서로 다른 자리수의 개수이다.각 테스트케이스에서 두 이진수가 주어질 때, 해밍 거리를 계산하라. 풀이서로 다른 자리수의 개수를 구하는 diff_chars 함수를 정의한다. zip으로 두 문자열을 묶고 각 자리수에서다르면 1을 더하는 방식이다.각 테스트케이스에서 이진수를 문자열 형태로 입력받아 diff_chars 함수를 사용하면 해밍 거리를 구할 수 있다.f-string으로 문제에서 주어진 형식에 맞춰 각 해밍 거리를 넣어 출력한다. 코드import sysinput=sys.stdin.readlinedef diff_chars(s1, s2): return sum(1 for a, b in zip(s1, s2) if a!=b)t=int(input())for _ in rang.. [BOJ/백준] 33163 - OIJ (Python) 문제문제링크문자열 s는 J, O, I로만 이루어져 있다.J, O, I를 각각 O, I, J로 변환하여 출력하라. 풀이trans에 문제에서 주어진 변환규칙을 정의한다.result에 이 규칙을 사용해 translate() 메세드로 변환한 결과를 담아 출력한다. 코드import sysinput=sys.stdin.readlinen=int(input())s=input()trans=str.maketrans("JOI", "OIJ")result=s.translate(trans)print(result) [BOJ/백준] 33161 - 鉛筆 2 (Pencils 2) (Python) 문제문제링크A엔을 가지고 있을 때, 하나당 5엔인 연필을 몇 자루 구입할 수 있는가? 풀이하나당 5엔이므로 A엔을 5엔으로 나눈 몫만큼 연필을 구입할 수 있다. 코드import sysinput=sys.stdin.readlineA=int(input())print(A//5) [BOJ/백준] 33178 - Micromasters (Python) 문제문제링크미나가 추천한 사람 한 명당 10%의 할인을 받는다.추천한 학생 수가 주어질 때, 몇 개의 강의를 무료로 수강할 수 있는가? 풀이한 명 당 10%씩 할인되므로 하나의 강의를 무료로 수강하기 위해서는 10명을 추천해야 한다.따라서 추천한 사람 수를 10으로 나눈 몫을 구하면 된다. 코드import sysinput=sys.stdin.readlinen=int(input())print(n//10) [BOJ/백준] 11816 - 8진수, 10진수, 16진수 (python) 문제문제링크정수 x가 주어질 때 맨 앞이 0이면 8진수, 0x이면 16진수이다.x를 10진수로 출력하라. 풀이위 조건에 맞춰 진수를 파악하기 위해 startswith()를 사용한다.2,8,16진수 모두 10진수로 바꾸기 위해서는 int(문자열, 문자열의 진수)를 사용하면 된다. 코드import sysinput=sys.stdin.readlinex=input()if x.startswith('0x'): print(int(x,16))elif x.startswith('0'): print(int(x,8))else: print(x) [BOJ/백준] 10821 - 정수의 개수 (python) 문제문제링크문자열 s는 숫자와 콤마로만 이루어져 있을 때 정수의 개수를 구하라.s의 첫 문자와 마지막 문자는 항상 숫자이고 콤마는 연속되지 않는다. 정수는 0으로 시작되지 않는다. 풀이문제의 조건을 읽어보면 두 가지로 풀이가 가능하다.1. 콤마는 항상 정수의 개수보다 하나 적으므로 콤마의 개수를 세서 1을 더하는 방법2. split(',')로 콤마 기준으로 파싱한 후 개수를 세는 방법 코드import sysinput=sys.stdin.readlines=input()comma=s.count(',')print(comma+1)import sysinput=sys.stdin.readlines=input().strip().split(',')print(len(s)) [BOJ/백준] 5026 - 박사 과정 (python) 문제문제링크덧셈문제(a+b)와 컴퓨터 과학 문제(P=NP)가 주어진다.덧셈문제는 합을 구하고 컴퓨터 과학 문제는 skipped를 출력하라. 풀이입력이 컴퓨터 과학 문제인지 확인하기 위해 입력 자체와 문자열 P=NP를 비교한다.만약 다르다면 덧셈 문제이므로 split('+')로 기호 기준으로 나눠 두 수를 int형으로 변환한다.그 후 합을 출력한다. 코드import sysinput=sys.stdin.readlinen=int(input())for _ in range(n): problem=input().strip() if problem=='P=NP': print('skipped') else: nums=[int(i) for i in problem.split('+')] .. [BOJ/백준] 32778 - 가희와 부역명 (python) 문제문제링크역 정보는 station_name만 제공되거나 sub_station_name과 함께 제공된다.후자의 경우 sub_station_name은 괄호로 감싸져 있다.staion_name과 sub_station_name을 각 줄에 출력하라.만약 sub_station_name가 없다면 부역명을 '-'로 출력한다. 풀이이 문제는 두 가지 형태의 입력을 처리해야 한다. 후자의 경우 전자에 추가 정보가 붙어있는 형태이다. readline을 사용했으므로 입력받을 때 마지막에 '\n'가 붙어있다. 이를 제거하기 위해 strip()을 써준다.부역명이 있는 경우를 확인하기 위해 split('(')을 사용한다.만약 부역명이 없다면 split은 작동을 하지 않으므로 총 개수는 1이다. 이 때 역명과 '-'를 출력한다.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 24 다음