안녕하세요. 지난 포스팅의 BOJ 2675번 : 문자열 반복에서는 문자열 내장함수인 join 함수를 이용해서 문제를 풀어보았습니다. 오늘도 문자열과 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 lower / upper 함수 제출 코드 S = input().lower() cnt = [0] * 26 for s in S : cnt[ord(s) - 97] += 1 if cnt.index(max(cnt)) == 25 or max(cnt[cnt.index(max(cnt)) + 1 : ]) != max(cnt) : print(chr(cnt.index(max(cnt)) + 65)) else : pri..
안녕하세요. 지난 포스팅의 BOJ 10809번 : 알파벳 찾기에서는 아스키코드 변환 함수인 ord 함수를 이용해서 문제를 풀어보았습니다. 오늘은 문자열 내장함수인 join 함수를 이용해서 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 join 함수 제출 코드 for _ in range(int(input())) : R, S = input().split() print(''.join([s * int(R) for s in S])) 해설 일단, 테스트케이스의 개수를 입력받은 뒤 문자열 S와 해당 문자열에서 각 문자를 몇 번 반복해서 출력할 것인지에 대한 변수인 R을 입력받습니다. 다음으로 할 것은 각 문..
안녕하세요. 지난 포스팅의 BOJ 11720번 : 숫자의 합에서는 문자열로 입력되는 각 숫자들의 합을 계산해보았습니다. 오늘은 문자열 내의 문자가 출현되는 위치를 찾는 방법에 대해서 알아보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 제출 코드 string = input() cnt = [-1] * 26 for idx, s in enumerate(string) : if cnt[ord(s) - 97] == -1 : cnt[ord(s) - 97] = idx else : pass for c in cnt : print(c, end=' ') 해설 이번 문제는 입력되는 문자열의 각 알파벳 소문자가 출현하는 위치를 반환하..
안녕하세요. 지난 포스팅의 BOJ 11654번 : 아스키 코드에서는 파이썬의 문자열 자료형의 기본인 아스키 코드에 대해서 알아보았습니다. 오늘도 문자열과 관련된 문제를 풀어보도록 하겠습니다 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 map 함수와 sum 함수 제출 코드 N = input() print(sum(map(int, input()))) 해설 문제에서는 N개의 숫자를 공백없이 입력받게 됩니다. 따라서, 입력된 숫자를 map 함수를 이용해서 정수형 원소를 가지는 iterable 자료형으로 변환한 뒤 sum 함수를 이용해서 각 숫자의 합을 계산합니다. 참고자료 및 그림출처 백준 코딩 문제
안녕하세요. 지난 포스팅의 BOJ 1065번 : 한수에서는 복잡한 구현문제를 풀어보았습니다. 오늘부터는 문자열과 관련된 문제들을 풀어보도록 하겠습니다. 오늘은 가장 간단한 아스키코드(ASCII Code)에 대한 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 아스키코드(ASCII Code) 제출 코드 print(ord(input())) 설명 일단, 아스키코드가 무엇인지부터 설명해야겠죠. 아스키코드란 미국정보교환표준부호(American Standard Code for Information Interchange; ASCII)는 영문 알파벳을 사용하는 대표적 문자 인코딩 방식입니다. 현존하는 많은 전..
안녕하세요. 지난 포스팅의 BOJ 4673번 : 셀프 넘버에서는 구현문제를 풀어보았습니다. 오늘도 마찬가지로 구현문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 1차원 배열 : 리스트 자료형 조건문 반복문 제출 코드 N = int(input()) if N < 100 : print(N) else : cnt = 99 for number in range(100, N + 1) : if 2 * ((number // 10) % 10) == number // 100 + number % 10 : cnt += 1 print(cnt) 설명 이와 같이 수학과 관련된 구현문제를 저희는 이미 BOJ 1110번 : 더하기 사이클와 BOJ 4..
안녕하세요. 지난 포스팅의 BOJ 4344번 : 평균은 넘겠지에서는 1차원 배열을 기반으로 문제를 풀어보았습니다. 오늘은 백준 단계별 문제 풀이에서 함수 카테고리로 오게 되었지만 함수를 사용하지 않고 그냥 반복문, 조건문, 1차원 배열과 같은 기본적인 개념들을 위주로 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 1차원 배열 : 리스트 자료형 조건문 반복문 제출 코드 self_numbers = [1] * 10000 for number in range(1, 10000) : if self_numbers[number] == 0 : continue sequence = number while True : while n..
안녕하세요. 지난 포스팅의 BOJ 1546번 : 평균에서는 파이썬의 리스트 자료형과 내장함수인 max() 함수와 sum() 함수를 이용해서 문제를 풀어보았습니다. 오늘은 리스트와 반복문을 활용해서 문자열을 분석하는 방법에 대해서 알아보도록 하겠습니다. 핵심 포인트 1차원 배열 : 리스트 자료형 문자열 내장 함수 : split() 함수와 count() 함수 제출 코드 T = int(input()) for _ in range(T) : quiz = input() score = 0 for s in quiz.split('X') : for i in range(1, s.count('O') + 1) : score += i print(score) 해설 문제의 입력은 첫번째 줄에 테스트케이스의 개수, 두번째 줄부터는 각 ..