Python 89

[encoding error] 파이썬 인코딩 에러 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position : invalid start byte

가장 기본적인 건 'utf-8'인데, 한국어 데이터 또는 다양한 언어의 데이터를 다루다 보면, UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position ____ : invalid start byte 와 같은 에러 메시지가 뜬다. -> encoding 에 순서대로 하나씩 넣어서 encoding 되는지 확인. 'utf-8' 'utf-16' 'cp949' 'euc-kr' 'latin_1' with open("file.name", encoding ='utf-8') as f: with open("file.name", encoding='utf-16') as f: with open("file.name", encoding='euc-kr') as f: w..

[programmers] level2, 2*n 타일링

https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대표적인 다이나믹 프로그래밍 문제! (사실 이 문제보고 다이나믹 프로그래밍 생각 못하면 다이나믹 프로그래밍 알고리즘 다시 공부해야함) 제한사항에서 얻을 수 있는 힌트! 1. 60,000이하의 자연수이다 -> 경우의 수가 많다, 일반적인 조합 문제로 접근하는 건 올지 않다. -> 동적 프로그래밍 2. 경우의 수를 1,000,000,007으로 나눈 나머지를 return -> 계산시 시간 효율성을 따진..

Python/CoTe 2022.08.28

[programmers] 올바른 괄호

https://programmers.co.kr/learn/courses/30/lessons/12909# 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 접근법 단순히 괄호 쌍을 확인하는 문제이므로 개수 세는 방식으로 풀이가 가능하다 1. '(' 라면 +1 2. ')' 라면 -1 3. 괄호는 항상 '(' 부터 시작 하기 때문에 ')'가 먼저 시작하면 음수가 된다. -> 합이 음수가 되는 경우 무조건 false 4. '(' 와 ')'의 개수만 같다면 합은 0이 되고 올..

Python/CoTe 2022.03.28

[programmers] 1차 캐시

https://programmers.co.kr/learn/courses/30/lessons/17680 문제의 조건에 따라 Least Recently Used 순서대로 없앤다. 즉, 가장 처음에 들어온 도시인 Seoul을 제거하고 newyork를 맨 마지막에 삽입한다. -> 이렇게 해서 가장 최근에 저장한 도시는 new york이 되고, 저장한지 가장 오래된 도시는 pangyo가 된다. -> newyork은 miss cache이므로 실행시간 +5 되어 총 20만큼 실행됐다. 3. 그 다음 도시인 'LA'를 cache에 삽입할 때 역시 cache공간이 부족하므로 가장 오래된 pangyo를 빼고 맨 마지막에 LA를 삽입해야한다. 위와 같은 과정을 반복하여 실행시간을 구하는 것이 문제의 목표이다. from co..

Python/CoTe 2022.03.27

[programmers] 전력망 둘로 나누기

https://programmers.co.kr/learn/courses/30/lessons/86971# 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 접근법 서로소 집합 분리! 0. 연결선을 돌아가면서 하나씩 끊었을 때, 두 개의 그래프로 나뉘어진다. 1. 연결된 그래프 끼리 나누어 묶어야 한다. ->집합으로 나누자 2. 각 송전탑이 어느 집합에 속하는지 찾기 위해서 연결된 가장 작은 번호의 송전탑을 우두머리 송전탑이라고 지정 3. 같은 우두머리를 같은 송전탑이면 같은 집합 4. 각 집합에 있는 원소 개수 차..

Python/CoTe 2022.03.26

[programmers] 행렬 테두리 회전하기

https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 주의!! 실제 행렬과 리스트의 원소 접근법 바뀜 주의 접근법 0. matrix 행렬 초기화 1. 변환 해야하는 테두리 정보의 좌표값을 moves 리스트에 저장한다. -> 시계 방향으로 회전하므로, 시계 방향 순서대로 저장한다. (난 이 부분이 조금 어려웠다) 2. moves 순서대로 다음 값과 회전한다. -> tmp 변수와 now (현재 위치의..

Python/CoTe 2022.03.25

[programmers] 멀쩡한 사각형 , 시간 초과 이유+예외처리

https://programmers.co.kr/learn/courses/30/lessons/62048# 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 접근 방법 생각하는 시간보다 나눗셈으로 인한 시간 초과 + 예외처리 생각하는게 더 오래 걸렸던 문제 접근법 처음에는 가로 세로 비율에 따라 더해 가는 수가 다를 줄 알았다. ->패턴 없음 !직선의 방정식 문제라고 생각하면 된다 만약 1을 직선의 방정식에 넣고 2.2가 나왔다면, 2.2가 속하는 박스는 활용하지 못한다. 즉, 소수..

Python/CoTe 2022.03.25

파이썬 반올림, 올림, 내림 - python round, ceil, floor

파이썬에서 math 함수로 코드 한 줄로 올림, 내림, 반올림 처리 하는 방법 올림 import math math.ceil(3.14) #4 math.ceil(-3.14) #-3 화살표가 무조건 오른쪽, 큰 수 쪽으로 향하면서 정수 값 반환 내림 import math math.floor(3.14) #3 math.floor(-3.14) #4 화살표가 무조건 왼쪽, 더 낮은 수 쪽으로 향함 trunc() 와 int()는 같은 역할을 하는데, 소수점 뒤에 있는 값들을 버리고 정수값 반환 반올림 import math math.round(3.14) #3 math.round(3.1414,2) #3.14 인자를 1개만 넣으면 소수 첫 번째 자리에서 반올림하여 정수값 반환 인자를 2개 넣으면 2번째 인자에 들어가는 소수..

[programmers] 주차 요금 계산

https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 접근법 1. 차 별로 입출차 내역을 묶자 -> 딕셔너리 이용 2. 차 별로 생성된 딕셔너리를 돌면서 총 시간을 계산 -> IN-OUT 이 모두 이루어졌는지 확인하기 위해 flag를 사용..

Python/CoTe 2022.03.25

[programmers] 점프와 순간이동

https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 접근법 건전지 사용을 줄이기 위해서 x2를 할 수 있으면 하는게 좋다! -> n부터 나누기 2를 해서 나머지가 0이면 순간이동을 하고 -> 나누기 2를 해서 나머지가 1인 경우에만 1칸씩 이동하여 1만큼 건전지를 사용한다. 즉, 2로 나누어 떨어지지 않는 경우(그림에서는 노란색 표시)만 count 하자! def solution(n): an..

Python/CoTe 2022.03.21
728x90