안녕하세요. 지난 포스팅의 BOJ 2941번 : 크로아티아 알파벳에서는 replace 함수를 이용해서 크로아티아 알파벳을 단순한 문자로 치환한 뒤 문자열의 길이를 계산하는 방법을 적용해보았습니다. 오늘은 살짝 조건문이 까다로운 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 제출 코드 cnt = 0 for _ in range(int(input())) : S = input() alpha = [0] * 27 for idx, s in enumerate(S) : if alpha[ord(s) - 97] == 0 : alpha[ord(s) - 97] += 1 else : if S[idx - 1] == s :..
안녕하세요. 지난 포스팅의 BOJ 5622번 : 다이얼에서는 문자 자체를 비교함으로써 해당 조건에 맞는 문제를 풀어보았습니다. 오늘은 문자열을 대치시키는 replace(old, new) 함수를 활용해서 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 replace 함수 제출 코드 cro = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] S = input() for c in cro : S = S.replace(c, '?') print(len(S)) 해설 이 문제는 접근하기에 따라서 어려워질수도 있고 쉬울수도 있는 문제입니다. 당장 이 문제를 보고 입력된 문..
안녕하세요. 지난 포스팅의 BOJ 2908번 : 상수에서는 슬라이싱을 이용한 문자열 뒤집기 방법을 이용해서 문제를 풀어보았습니다. 오늘도 역시 문자열과 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 제출 코드 S = input() T = 0 for s in S : if s < "D" : T += 3 elif s < "G" : T += 4 elif s < "J" : T += 5 elif s < "M" : T += 6 elif s < "P" : T += 7 elif s < "T" : T += 8 elif s < "W" : T += 9 else : T += 10 print(T) 해설 문제는 단..
안녕하세요. 지난 포스팅의 BOJ 1152번 : 단어의 개수에서는 split 함수와 len 함수를 이용해서 간단하게 문제를 풀어보았습니다. 오늘도 문자열과 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 reversed 함수 제출 코드 A, B = input().split() print(int(A[::-1]) if int(A[::-1]) > int(B[::-1]) else int(B[::-1])) 해설 이 문제는 먼저 2개의 숫자를 공백을 기준으로 입력받기 때문에 map(int, input().split()) 를 이용할 수도 있지만 결국에 중간에 문자열을 뒤집어야하기 때문에 굳이 정수형으로..
안녕하세요. 지난 포스팅의 BOJ 1157번 : 단어 공부에서는 문자열 내장 함수들을 이용해서 문제를 풀어보았습니다. 오늘도 역시 문자열과 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 문자열 자료형 len 함수 제출 코드 print(len(input().split())) 해설 문제의 입력은 임의의 단어 개수를 자닌 문자열이 입력됩니다. 이때, 출력은 해당 문자열에 포함된 단어의 개수를 출력해주어야합니다. 저희는 여기서 문자열 내장함수인 split 함수와 리스트 함수인 len 함수를 함께 적용할 수 있습니다. split() 함수를 통해 입력된 문자열을 공백을 기준으로 분리한 리스트를 만든 뒤 리스트 안..
안녕하세요. 지난 포스팅의 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 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 함수를 이용해서 각 숫자의 합을 계산합니다. 참고자료 및 그림출처 백준 코딩 문제