본문 바로가기

분류 전체보기

(351)
[이코테] 숫자 카드 게임 https://github.com/ndb796/python-for-coding-test/blob/master/3/4.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com 1. 해결방법 그리디 문제이다. 사실 해결방법 없이 그냥 풀면 된다. 2. 정답코드 import sys input = sys.stdin.readline N, M = map(int..
[이코테] 큰 수의 법칙 https://github.com/ndb796/python-for-coding-test/blob/master/3/2.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com 1. 해결방법 그리디 문제이다. 본인은 반복문으로 풀었지만 좀 더 효율적인 방법은 가장 큰 수와 두 번째로 큰 수밖에 사용하지 않는다는 부분을 파악해야한다. 가장 큰 수를 K번 ..
[BOJ] 17406. 배열 돌리기 4 https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 1. 해결방법 r, c, s에 대한 모든 경우의 수를 2차원 배열에서 회전을 시켜야 하기 때문에 파이썬의 permutations 라이브러리를 사용하였다. 기본적으로 시계방향으로 회전하는 것이기 때문에 상하좌우 모두 값을 이동해주는 코드를 4개의 for문으로 해결하였고, 안 쪽 리스트도 이동해야해서 4개의 for문 위에 바로 s 값이 -1씩 되도록 반복해주었다. 1사이..
[Logging] 로그 레벨 0. 들어가며 로그 레벨은 로그 메시지에 포함된 메시지의 중요성과 긴급성에 대한 대략적인 정보라고 할 수 있다. 1. 로그 레벨 (== 심각한 정도) LevelValueWhen to use Level Value When To Use DEBUG 10 (주로 문제 해결을 할 때 필요한) 자세한 정보. INFO 20 작업이 정상적으로 작동하고 있다는 확인 메시지. WARNING 30 예상하지 못한 일이 발생하거나, 발생 가능한 문제점을 명시. (e.g. ‘disk space low’) 작업은 정상적으로 진행. ERROR 40 프로그램이 함수를 실행하지 못 할 정도의 심각한 문제. CRITICAL 50 프로그램이 동작할 수 없을 정도의 심각한 문제. Python은 기본적으로 warning 레벨이 디폴트 값이므로..
[BOJ] 15684. 사다리 조작 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 1. 해결방법 백트래킹 문제인데 개인적으로 정말 어려웠다. 근데 굉장히 좋은 문제로 생각하는데, 그 이유는 2차원 배열을 자유자제로 조절할 수 있어야 사다리 로직을 구상할 수 있고 가지치기를 해서 연산 횟수를 엄청 줄일 수 있다. 아이디어는 유튜브 링크를 남김. 정말 설명을 잘해주신다. https://www.youtube.com/watch?v=s5hmaRJ5jN0 2. 정답코드 (1) 가지치기가..
[BOJ] 1062. 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 1. 해결방법 완전탐색 문제이다. 본인은 알파벳을 for문 돌려서 백트래킹을 진행하였다. 처음에는 문제 이해를 잘못해서 몇시간동안 헤맸다... 알파벳 체크 여부인 chk를 만들고, 모든 알파벳을 for문 돌려서 재귀를 호출하는 것이다. 주어진 문자열 하나하나를 따로 보는 것이 아니라, 가르치는 알파벳은 주어진 문자열 모두 공통적으로 적용되는 것이기에 max() 메서드를 사용해서 얼마나 문자..
[Redis] Python(Django)에서 Redis Sorted Set을 이용한 랭킹 구축 0. 들어가며 Django로 메가 쇼핑몰을 개발하는 도중에 Redis의 String과 Set 자료구조를 사용해야할 필요가 있어서 레디스에 대해 공부하는 도중, 상품 데이터의 평점을 기반으로 Top 랭킹 데이터를 구축하면 좋겠다는 생각이 들어서 공부하게 되었다. 레디스의 String 자료구조와 RDB의 데이터만 이용해서 상품 랭킹 데이터를 개발할 수 있지만, 코드가 복잡해질 수 있다는 생각이 들었다. 그래서 레디스의 기능을 좀 더 활용하고자 하는 목표를 가지고 있기 때문에 최대한 활용해보려고 Sorted Set 자료구조로 랭킹을 구축해볼 것이다. 1. Data Set Django는 RDB와 연동을 해서 Migration으로 RDB와 직접적인 데이터 소통을 할 수 있다. 쉽게 말하면 migration 파일만..
[BOJ] 1038. 감소하는 수 https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 1. 해결방법 이 문제는 완전 탐색 백트래킹으로 해결한 문제이다. ( + 조합으로도 해결 ) 처음엔 ''문자열을 시작으로 0부터 9까지의 값을 문자열에 더하면서 answer 리스트에 append 하였다. 재귀를 통해서 계속해서 문자열을 추가시켜 sort() 정렬을 해주면 감소하는 수의 리스트가 만들어진다. 2. 정답코드 (1) 백트래킹 import sys input = sys.std..