본문 바로가기

Python/파이썬 문법 Tips24

[ 파이썬(python) ] 공백으로 들어온 int를 공통으로 빼주기 📍 공백으로 들어온 int를 공통으로 빼주기 예를 들어 공백으로 들어온 입력을 전체 -1처리를 해줘야 한다면, 두 가지 방법이 있을 것이다. 입력을 모두 받고나서 -1 해주기 입력을 받을 때마다 -1 해주기 결론적으로 같은 출력이지만 조금이나마 코드를 간결하게 작성할 수 있기 때문에 lambda 함수를 사용해 입력을 int로 바꾸면 2번처럼 사용할 수 있다. 다음의 코드를 참고하자. # 입력: 1 2 # 방법 1 temp_a, temp_b = map(int, input().split()) a, b = temp_a-1, temp_b-1 print(a, b) 👉🏽 0 1 # 방법 2 a, b = map(lambda x: int(x)-1, input().split()) print(a, b) 👉🏽 0 1 2021. 7. 19.
[ 파이썬(python) ] 2차원 행렬 시계방향으로 한 칸씩 회전하기 📍 2차원 행렬 시계방향으로 한 칸씩 회전하기 카카오 코딩 테스트를 보다가 2차원 행렬을 시계방향으로 회전하라길래 저번에 배열돌리기 3 문제를 풀어본 경험이 있어 풀 수 있을 것 같았는데 못 풀었다. 😂 😂 눈물을 머금으며 다음엔 꼭 풀겠다는 취지로 글을 남긴다. 이번에는 90도 회전이 아닌 시계방향 혹은 반시계방향으로 한 칸씩 이동하는 방법을 배워보려고 한다. 이때 전체 범위를 회전하지 말고 주어진 범위 내에서 테두리의 값만 이동하자. 다음과 같이 5*5행렬이 있을 때 파란색 빗금 친 범위만 시계방향으로 바꾸려고 한다. 처음 로직을 구현할 때 dx, dy를 이용해서 옮길 좌표를 우측으로 한 칸 혹은 아래쪽으로 한 칸 이렇게 짜는 줄 알았더니 dx, dy는 사용하지 않고, 범위를 설정해서 row+1 혹은.. 2021. 7. 15.
[ 파이썬(python) ] 절사평균과 round(반올림) 함수 그리고 부동소수점 비교 📍 절사 평균과 round(반올림) 함수 그리고 부동소수점 비교 절사평균 - 위키피디아 란, 편차가 큰 자료의 경우 산술평균이 적합하지 않으므로 자료의 총 개수에서 일정 비율만큼 가장 큰 부분과 가장 작은부분을 제거 후 평균을 산출하는 방법이다. 예를들어, `n=5`개인 표본집단에서 15%의 절사평균을 구한다고 하면 전체 값의 상위 5 * 0.15 = 0.75, 하위 5 * 0.15 = 0.75개 만큼 제외 후 평균을 구한다는 뜻이다. (문제에 따라 소수점으로 나오게 되면 반올림을 하거나 하지 않는 경우가 있기 때문에 반올림하지 않았다.) 주어진 표본집단 arr에서 15% 절사평균을 구한다고 가정하면 (소수점일 때 반올림한다.) python에서 다음과 같이 작성 할 수 있다. 이때 slicing을 2가지.. 2021. 7. 13.
[ 파이썬(python) ] python에서 음의 정수를 floor 해보기 📍 python에서 음의 정수를 floor 해보기 프로그래머스 - 기능개발 문제에서 전처리 과정 중 100 - progress[x] // speeds[x]을 해야 하는 과정이 있었는데 나는 나머지가 있는 / 없는 조건을 사용하여 해결했으나 math.floor 혹은 //를 사용하여 해결한 다른 사람의 코드를 봤다. 바로 음수 floor를 사용한 것인데, 지금까지 양수 floor만 사용해봤어서 음수는 어떤 원리로 계산되는지 궁금했다. 먼저 floor의 정의(공식문서)는 다음과 같다. the largest integer less than or equal to x 직역하면 x보다 작거나 같은 가장 큰 정수를 뜻하는데, 말로만 설명해서는 이해가 잘 되지 않을 수 있으니까 예시를 살펴보자. (하단 코드 참고) fr.. 2021. 7. 1.
[ 파이썬(python) ] 리스트 중 front, back에서부터 target index까지 어느쪽이 더 가까운지 판단하기 📍 리스트 중 front, back에서부터 target index까지 어느 쪽이 더 가까운지 판단하기 길이가 10인 리스트 arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 일 때, target_index = 3(값은 4)는 앞에서부터 더 가까운지 아니면 뒤에서부터 가까운지 판단하고 싶을 때 다음과 같은 코드를 작성하면 된다. 응용문제로는 백준 1021 - 회전하는 큐가있다. front와 back을 나누는 기준은 len(arr) // 2이다. 만약, target_index가 기준보다 작다면 앞에서부터 가깝고, 기준보다 크다면 뒤에서부터 세는 편이 더 빠르다. n = 10 arr = [i for i in range(1, n+1)] target_index = 3 # 4 if arr.inde.. 2021. 6. 25.