본문 바로가기

Python32

[ 파이썬(python) ] 이중 반복문에서 print의 위치 별 출력 📍 이중 반복문에서 print의 위치 별 출력 n*n행렬 문제를 풀 때마다 print를 어디에다 써야 할지 헷갈려서 참고하기 위한 글이다. 다음은 (0,0)부터 1씩 증가하는 n*n 배열에서 arr[i][j]가 10보다 클 경우 cnt가 증가하는 코드이다. 1번 위치: number가 10보다 큰 조건일 때만 cnt 출력 2번위치: 조건에 상관없이 모든 좌표에서 cnt 출력 3번위치: j번은 다 돌고 i번째 돌 때 출력 즉, 행을 돌 때 출력한다. 주의할 점은 누적된 값을 출력한다. 4번위치: 모든 경우의 수를 다 돌고 나서 출력 ''' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ''' n, number, cnt = 4, 0, 0 arr = [[0] * n for _ in ran.. 2021. 5. 19.
[ 파이썬(python) ] cnt 유용하게 사용하기 📍 cnt 유용하게 사용하기 각각의 index마다 cnt를 세고 싶으면 배열만큼 초기화 해준 다음 반복문 내부 i번째에서 해당 cnt[i]를 증가시켜주자. # before n = int(input()) people = [tuple(map(int, input().split())) for _ in range(n)] result = [] for i in range(n): prize = 1 for j in range(n): if people[i][0] < people[j][0] and people[i][1] < people[j][1]: prize += 1 result.append(prize) print(' '.join(map(str, result))) # after n = int(input()) people =.. 2021. 5. 18.
[ 파이썬(python) ] 리스트, 문자열 거꾸로 출력하기 📍 리스트, 문자열 거꾸로 출력하기 arr = [1, 2, 3, 4, 5] # 1. 슬라이싱 for i in arr[::-1]: print(i, end = ' ') 👉🏽 1, 2, 3, 4, 5 # 2. 범위 거꾸로 선언하기 for i in range(len(arr)-1, -1, -1): print(arr[i], end = ' ') 👉🏽 1, 2, 3, 4, 5 # 3. 출력 거꾸로 선언하기 for i in range(len(arr)): print(arr[-i-1], end = ' ') 👉🏽 1, 2, 3, 4, 5 s = 'soju' # 1. 슬라이싱 for i in s[::-1]: print(i, end = ' ') 👉🏽 u j o s # 2. 범위 거꾸로 선언하기 for i in range(len(.. 2021. 5. 12.
[ 7. 배열 ] - 두 수의 합(Two Sum) 📍 두 수의 합(two sum) 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라. ⚡️ 나의 풀이 이 책의 풀이방법은 4가지나 되지만, 제일 비효율적인 브루트 포스(brute force)밖에 떠오르지 않았다. 브루트 포스(brute force)으로 풀었던 방법은 이중 반복문을 선언하여 index를 하나씩 비교하는 방법인데, 이렇게 풀면 시간복잡도가 높아져서 효율적인 코드라고 말하기 어렵다. 책에 나와있는 다른 방식의 풀이는 상당히 효율적이었는데, target을 찾기위해서 index끼리 더하는것이 아니라 target에서 index값 한개를 빼고 남은 index값이 배열안에 있는지 탐색하는 방법이었다. 문제풀면서 이런 방식은 떠오르지 않았는데.. 많은 풀이방법 중에 브루트포스밖에 떠오르지 않.. 2021. 4. 8.
[ 6. 문자열 조작 ] - 그룹 애너그램(Group Anagrams) 📍 그룹 애나그램 애너그램 이란 일종의 말장난으로 어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것을 말한다. 예를들면 listen의 알파벳을 다시 조합하면 silent가 되는것이 있다. ⚡️ 나의 풀이 어찌됐건 애나그램은 문자열 하나씩 분리해서 재 조합하는것이기 때문에 같은 알파벳이 쓰였는지 확인하려면 하나씩 분리해서 정렬하면 된다. 예를 들어, 문제 입력 strs = ["eat","tea","tan","ate","nat","bat"]을 기준으로 설명하면 strs를 반복문으로 하나씩 정렬하면 다음과 같은 결과가 나온다. strs = ["eat","tea","tan","ate","nat","bat"] for i in strs: print(sorted(list(i)), i) ''' .. 2021. 4. 6.