본문 바로가기

Python/파이썬 문법 Tips24

[ 파이썬(Python) ] 나머지(%) 사용할 때 조건 추가하기 📍 나머지(%) 사용할 때 조건 추가하기 저번에 풀었던 boj 1009 - 분산처리 문제와 이것과 비슷했던문제인 boj 10250 - ACM 호텔 역시 동일하게 나머지(%)를 사용하면 나머지 조건을 추가해줘야 한다. 예를 들어, arr = [-3333, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ...] 처럼 표현하고 싶다면 (arr[1]부터 세기 위해 arr[0]에 -3333을 넣었다.) 해당 패턴은 index의 값은 10으로 나눈 나머지가 될 것이다. 하지만 단순하게 나머지 값만 추가하면 arr[10]은 10이 아니라 0이 된다. 이 때문에 나머지를 사용해서 수를 셀 때는 나머지 조건을 붙여줘야 한다. 다음 코드처럼 말이다. index.. 2021. 6. 7.
[ 파이썬(Python) ] 함수(def)에서 return 인자의 수가 다를 때 📍 함수(def)에서 return 인자의 수가 다를 때 코딩 테스트 문제를 풀다 보면 False일때 -1만 return 시키고 True면 a, b처럼 1개 이상을 return해야 할 때 다음과 같이 작성할 수 있다. 만약, a+b값이 20을 넘으면 a, b을 리턴해야하고, 아니면 -1을 리턴해야한다면 다음과 같은 코드가 될 것이다. a, b = map(int, input().split()) def check(): if a + b >= 20: return a, b else: return -1 print(check()) 하지만, -1의 리턴값에 임의의 수 0을 넣고 똑같이 2개를 리턴하게 작성한 다음 첫 번째 값이 -1이면 -1을 출력시키고 아니면 c, d를 출력하게 할 수 있다. a, b = map(int.. 2021. 6. 7.
[ 파이썬(Python) ] 여러 줄 문자열 입력에서 좌우, 상하 반전 출력하기 📍 여러 줄 문자열 입력에서 좌우, 상하 반전 출력하기 보통 여러줄(n*n 크기)로 문자열을 입력받을 때의 좌우, 상하 반전 방법이다. 코드가 짧기 때문에 외워두면 좋을 것 같다. s = ['ABC', 'DEF', 'GHI'] # 그대로 출력 print(*s, sep='\n') 👉🏽 ABC DEF GHI # 좌우 반전 print(*[i[::-1] for i in s], sep='\n') 👉🏽 CBA FED IHG # 상하 반전 print(*s[::-1], sep='\n') 👉🏽 GHI DEF ABC 2021. 6. 7.
[ 파이썬(Python) ] 0과 1만있는 값에서 상태 변화하기 📍 0과 1만 있는 값에서 상태 변화하기 0: 스위치가 꺼져있는 상태 1: 스위치가 켜져있는 상태 index가 3의 배수인 자리면, 0일 때는 1로, 1일 때는 0으로 변경하는 코드를 작성하라. (arr은 1부터 센다.) n = 10 target = 3 arr = [-3333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in range(target, n + 2, 3): arr[i] = (arr[i] + 1) % 2 print(arr[1:]) 👉🏽 [0, 0, 1, 0, 0, 1, 0, 0, 1, 0] 1부터 n까지 i번째 배수마다 상태를 변화하는 코드 for i in range(1, n + 1): for j in range(i, n + 1, i): gate[j] = (gate[j] .. 2021. 5. 31.
[ 파이썬(Python) ] n의 배수인 index만 출력하기 📍 n의 배수인 index만 출력하기 n의 범위가 20인 arr에서 3의 배수인 index만 출력하는 코드를 작성해라 n = 20 target = 3 arr = [i for i in range(20)] # 나머지 for i in range(1, n+1): if not i % 3: print(arr[i], end=' ') # step = target for i in range(target, n+1, 3): print(arr[i], end=' ') 👉🏽 3 6 9 12 15 18 2021. 5. 31.