컴퓨터 공부/🐍 Python 16

Remove Non-alphanumeric Characters in Python

알고리즘 문제를 풀다가 "Non-alphanumeric Characters" 와 관련한 문제에 직면했다. 비단, 알고리즘 문제 뿐만 아니라 사용자 입력을 정리하거나 데이터를 추출하는 데에도 이러한 "Non-alphanumeric Characters"를 삭제하는 방법을 알면 유용할 것 같은 생각이 들었다. https://leetcode.com/problems/valid-palindrome/description/?envType=study-plan-v2&envId=top-interview-150 Valid Palindrome - LeetCode Can you solve this real interview question? Valid Palindrome - A phrase is a palindrome if, a..

for문에 else문이 딸랑?

문득 알고리즘 문제를 풀다가 해당 코드가 실행돼서 찾아봤다. answer = 0 for w in words: for c in w: if w.count(c) > chars.count(c): break else: answer += len(w) return answer for문 2개로 구성되어 있는 이중 for 문이다. 안쪽 for 문에서 break를 만난다면 안쪽 for문을 다 순회하지 않고 else 문 지점으로 오게 될텐데, else 문이 딸랑 나와도 되는지 의문이었다. 평소에는 저렇게 코드를 작성하지 않고 flag 변수를 따로 설정해서 아래와 같이 코드를 짜주곤 했다. answer = 0 for w in words: flag = True for c in w: if w.count(c) > chars.cou..

list(map(int, input().strip().split())) 와 [map(int, input().strip().split())] 의 차이

문득 알고리즘 문제를 풀다가 list(map(int, input().strip().split())) 랑 [map(int, input().strip().split())] 의 차이 의 차이에 대해 궁금해서 찾아봤다. 정말 직관적으로 이해가 가능했다. 이들의 차이를 이해하려면 Python의 'map' 함수와 리스트 컴프리헨션에 대해 이해할 필요가 있다. 1. list(map(int,input().strip(),split())) input().strip(),split() 은 입력된 문자열을 공백을 기준으로 나누어 리스트로 만든다. map(int, ...) 는 이 리스트의 각 원소를 정수로 변환한다. 'map' 함수는 지정된 함수(여기서는 'int')를 리스트의 각 원소에 적용한다. list(...) 는 'map..

[PYTHON] TYPEERROR: ‘UNICODE’ OBJECT DOES NOT SUPPORT ITEM ASSIGNMENT

파이썬에서는 String과 List는 몇 가지 상황에서 비슷하게 작동할 수 있다. 예를 들어, 각 요소를 반복하는 것과 같은 경우이다. for i in string_s: # 무언가를 수행 for i in list_l: # 무언가를 수행 그러나, 요소를 수정하려고 할 때, 중요한 차이점이 나타난다. 리스트와 달리 파이썬의 문자열은 "변경할 수 없다". (immutable.) 문자열에서 문자를 아래와 같이 변경하려고 하면, string_s[i] = 'X' TypeError: ‘unicode’ object does not support item assignment"라는 오류가 발생한다. 문자열을 수정하려면 먼저 리스트로 변환한 후 변경하고 다시 문자열로 결합해야 한다. list_s = list(string_s..

n진법으로 표기된 string을 10진법 숫자로 변환하기 - int 함수

◆ 먼저, 글을 보기 전에 이 문제를 풀어볼까요? 더보기 문제 base 진법으로 표기된 숫자를 10진법 숫자 출력해보세요. 입력 입력으로는 공백으로 구분된 숫자가 두 개 주어집니다. 첫 번째 숫자는 num을 나타내며, 두 번째 숫자는 base를 나타냅니다. 출력 base 진법으로 표기된 num을 10진법 숫자로 출력해보세요. 제한 조건 base는 10 이하인 자연수입니다. num은 3000 이하인 자연수입니다. 입출력 예시 input output 12 3 5 444 5 124 입출력 예 설명 입출력 예 1 3진법으로 표기된 12는 10진법으로 표현하면 5입니다. ( 1*3 + 2 ) 입출력 예 2 5진법으로 표기된 444는 10진법으로 표현하면 124입니다. ( 4*5*5 + 4*5 + 4 ) 저는 처음..

몫과 나머지 - divmod

알고리즘 문제를 풀 때, 정수를 나눈 몫과 나머지를 구해야 할 때면, 보통 아래와 같은 방법으로 구합니다. ex) 29을 3으로 나눈 몫과 나머지를 구해야 하는 경우 a = 29 b = 3 print(a//b, a%b) # 9, 2 하지만, 파이썬에서는 divmod와 unpacking 기능이 있는데 divmod를 사용하면 아래와 같이 간편하게 몫과 나머지를 구할 수 있습니다! divmod는 한번에 몫과 나머지를 반환해주는 파이썬 내부 함수에요! a = 29 b = 3 print(*divmod(a, b))# 9 2 ◆ divmod를 사용할 때 주의할 점◆ - 무조건 divmod를 사용하는 것이 좋은 것은 아닙니다! 가독성이나, 팀의 코드 스타일에 따라서, 근본적인 //, % 의 방법으로 쓰는게 더 좋을 수..

반응형