PS(6)
-
내가 보려고 만든 PS 팁 - 1
[ 팁 1 - 들어오는 인풋이 매우 작은 경우 완전 탐색을 고려해보자. ] 코드 테스트를 하다보면 인풋이 매우 작은 경우가 있다. 예를 들어 특정 규칙으로 글자를 만드는데 8자리까지만 되는 경우, 이런 경우는 완전탐색으로 풀어도 시간 제한을 벗어나지 않는다. 문제를 풀 때, 낮은 케이스를 올려놓고 모든 경우의 수를 탐색하는지 출력문으로 확인해보고 제출하는 걸 잊지말자. 프로그래머스: 모음사전 프로그래머스: 피로도 [ 팁 2 - 들어오는 인풋이 억 단위인 경우엔 이분 탐색을 고려해보자. ] 앞의 경우와 다르게 인풋이 20억 같이 엄청난 값들이 들어오는 경우도 있다. 이 때는 이분 탐색을 고려해보는 게 좋다. 이런 건 N이상인 알고리즘으로 풀라는 게 아니기 때문이다. 따라서 특정한 기준을 통해 해당 값보다 ..
2024.03.23 -
내가 자주 까먹는 파이썬 기능들
[ 요소 별 정렬 ] 정렬을 하는데 요소가 많으면 첫 번째는 오름차순으로 두 번째는 내림차순으로 정리해야 하는 경우가 생길 수 있다. 이런 경우 sort 내부에서 lambda로 쉽게 오름차순과 내림차순을 설정할 수 있다. 백준 알고리즘에서 국영수(10825) 문제를 풀면 정렬 기준은 4가지이다. 1. 두 번째 원소를 기준으로 내림차순 정렬 2. 두 번째 원소가 같은 경우, 세 번째 원소를 기준으로 오름차순 정렬 3. 세 번째 원소가 같은 경우, 네 번재 원소를 기준으로 내림차순 정렬 4. 네 번째 원소가 같은 경우, 첫 번째 원소를 기준으로 오름차순 정렬 이 경우 입력이 (Junkyu 50 60 100, Sangkeun 80 60 50, Sunyoung 80 70 100) 같이 들어온다. 정렬 기준의 우..
2024.01.26 -
파이썬으로 배열을 돌려보자
[ 작성 이유 ] 생각보다 구현과 관련해서 PS로 배열을 돌려야하는 상황이 자주 있는 것 같다. 예전에 코딩테스트를 봤을 때도 배열 돌리기 문제가 굉장히 귀찮았던 것으로 기억한다. 하는 김에 배열 돌리기를 한번 익혀 보자. [ N x N 배열을 돌려보자 ] N x N 배열을 한번 돌려보자. 배열을 돌리면 규칙을 발견할 수 있다. 우선 배열을 좌측으로 회전시켜보자. 좌표를 기준으로 놓았는데 총 9개의 결과를 얻을 수 있다. (0,0) -> (2,0) | (0,1) -> (1,0) | (0, 2) -> (0,0) | (1,0) -> (2,1) | (1,1) -> (1,1) | (1,2) -> (0,1) | (2,0) -> (2,2) | (2,1) -> (1,2) | (2,2) -> (0,2) 좌측으로 회전하..
2024.01.25 -
파이썬 Regex 사용법
[ 작성 이유 ] 이전에 코딩테스트 공부를 하면서 Regex를 이용해서 문자열을 파싱했을 때 참 편리함을 느꼈었다. 그런데 오랜만에 다시 공부를 하면서 사용해보려고 하니 잘 생각이 나지 않았고 파이썬에서 Regex를 통해 파싱하는 방법을 다시 정리해보려고 한다. [ Regex 작성 방법 ] Regex를 사용하려면 pattern을 설정해야 한다. 주로 많이 쓰이는 패턴의 종류에 대해서 이야기를 하면 다음과 같다. ○ ' | ' : ' | '를 사용하면 패턴에서 매칭될 값들을 추가해줄 수 있다. 예시) (0 | 1)은 0과 1이면 매칭된다. ○ ' - ' : ' | '를 범위처럼 사용할 수 있다. ( 0 | 1 | 2 | 3 | 4 ) 이렇게 만들기가 귀찮으니 이걸 줄이는 방법이라고 생각하면 된다. 예시) ..
2024.01.17 -
Regex를 이용한 코테 예시
[ 작성 이유 ] 앞에선 Regex사용방법을 배웠으니 이제 Regex를 실제로 필요한 상황에 적용 시켜보자. [ 카카오 2018년 다트게임 ] 카카오 2018년 다트 게임에서는 총 3번의 다트를 던질 기회가 있으며 각각의 경우 0-10점을 얻을 수 있다. 점수와 관련해서 영역이 있는데 Single(S)은 1제곱, Double(D)는 2제곱, Triple(T)는 3제곱으로 점수를 계산한다. 또한 스타상(*)과 아차상(#)이 있는데 스타상은 해당 점수와 이전 점수를 2배로, 아차상은 해당 점수만큼 마이너스 시킨다. 이들 정보로 구성된 문자열이 들어왔을 때 점수 결과를 출력해라. 입력 예시 1. 1S2D*3T 37 1^1*2 + 2^2*2 + 3^3 2. 1D2S#10S 9 1^2+2^1(-1) + 10^1 ..
2024.01.17 -
Visual Studio 한글 에러 해결법
코테 문제를 풀다보면 가끔씩 한글로 뭔가를 하라고 하는게 있는데 뜬금없이 에러가 난다. 그 때엔 1번 줄에 한줄만 추가해주면 된다. 파일 찾다가 귀찮아서 다시 올린다. # -*- coding: euc-kr -*-
2024.01.15