2차원 리스트 전체 값 중에서 최대, 최소 값을 구할 때 흔히 max(리스트)를 넣어본 경험이 있을 겁니다.하지만, 원하는 값이 나오지 않습니다.보통 최대, 최소, 정렬 등 계산이 들어가는 함수는 대부분 2차원 배열 내 각 첫 번째 인자부터 계산이 됩니다.따라서 전체 계산한 값을 구하기 위해서는 다른 방법을 사용해야 합니다.data = [ [0, 3, 2], [0, 1, 2], [2, 1, 0], [3, 2, 1]]print(max(data)) #[3, 2, 1]print(min(data)) #[0, 1, 2]sort(data)print(data) #[[0, 1, 2], [0, 3, 2], [2, 1, 0], [3, 2, 1]]위 예시에서 max 함수는 data라는 2차원 배열 내의..
알고리즘 문제를 풀다 2의 몇 제곱인지를 구해야되는 경우가 생겼습니다.하지만 검색을 해도 잘 안나와서 좀 당황했습니다 ㅋㅋ그렇다고 다른 문제를 풀 때 다시 쓸 수도 있는데 for문을 돌리려니 좀 그렇더라구요.그러다가 생각해보니 로그를 쓰면 된다는 걸 깨달았습니다.그래서 생각난김에 정리하려고 블로그에 지수와 로그 부분 정리합니다 ㅎㅎ 거듭 제곱 계산# 2의 3제곱 계산print(2**3)>> 8# pow(a,b) a의 b제곱, pow(a,b,c)를 하면 pow(a,b)%c와 동일하게 계산됩니다.print(pow(2,3))>> 8# math.pow(a,b) a의 b제곱 pow()함수와 차이는 부동 소수점 형태로 반환한다는 겁니다.print(math.pow(a,b))>> 8.0 제곱근 계산(루트)print(2..
알고리즘을 풀다보면 로직이 맞는 데도 불구하고 시간 초과가 뜨는 경우가 있습니다. 이 경우 하나 확인해야할 것이 바로 입력 혹은 출력해야하는 데이터의 개수가 많은지 확인해봐야합니다. 만약 입출력해야될 데이터가 평소에 푸는 문제보다 많다면 input()과 print()의 속도가 느려서 그럴 수 있습니다. 이럴 때는 sys 라이브러리의 readline()과 write()를 사용하면 해결될 수 있습니다. 이번 포스팅에서는 파이썬 빠른 입출력에 대해서 작성하고자 합니다. #sys 라이브러리 사용 import sys #빠른 입력 n = sys.stdin.readline() #빠른 출력 sys.stdout.write(answer) 빠른 입력은 sys.stdin.readline()을 사용하면 됩니다. 주의할 점은 엔..

문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 ..
문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..
문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 n result 78 83 15 23 입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자..
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예 설명 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. solution n의 값이 매우 큽니다. 단일 for 문을 사용해서 문제를 풀 수 있겠지만 메모리 효율이 매우 떨어질 가능성이 높습니다.(이로 인해 틀린 답이 될 수도 ..
생성 list = [1, 2, 3, 4] 리스트 슬라이싱 : x index부터 (y - 1) index까지의 리스트를 반환 합니다. a[x:y] 리스트 길이 구하기(string도 사용 가능합니다) len(list) 원소의 추가 삭제는 다른 글에서 다뤘으므로 대충만 적겠습니다. #원소 추가 list.append(x) list.insert(index, x) #원소 삭제 del list[index] list.remove(value) list.pop() #마지막 원소 삭제 후 반환 정렬 : 기본적으로는 오름차순으로 정렬합니다. sorted(list) list.sort() #내림차순 sorted(list, reverse=True) list.sort(reverse=True) list.sort()는 리스트형의 메소드..
- Total
- Today
- Yesterday
- 10기
- 중간발표
- 글또
- 6팀
- 15기
- 해커톤
- 인프런
- 후기
- 글로컬
- 회고
- 알고리즘
- it 동아리
- tdd
- spring boot
- 프로그래머스
- 서버
- 16기
- server
- 파이썬
- python
- 리빙랩
- 디프만
- 연합 동아리
- AWS
- 백엔드
- 육지행
- 1주차
- 육.지.행
- test
- 스터디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |