전체 글

[Python] 백준 1946 : 신입사원
문제 https://www.acmicpc.net/problem/1946 [ 문제 조건 ] 각 지원자마다 서류, 면점 순위를 입력 (* 주의 성적이 아니므로 순위가 낮은게 좋은거임) 서류, 면접 성적 중 적어도 다른 지원자보다 둘 중 하나 높아야 함 → 즉, 다른 지원자보다 둘 다 낮으면 탈락 [ 해결순서 ] 문제를 해결하는 포인트 중 하나가 입력 받은 후 먼저 1차적으로 서류순으로 등수를 정렬 하는 것이다. ( 면접 순으로 해도 상관 X ) 이미 서류 순으로 정렬 했다면, 이제는 면접 등수만 갖고 비교하면 되므로 훨씬 수월하다. 먼저 기준 값으로 서류 1등의 면접 등수를 두고 값을 계산하는데, 이미 뒤에 지원자들은 서류 등수는 다 낮은데 면접 등수까지 낮으면 둘 다 낮은 것이므로 탈락 기준 값보다 면접 ..

[Python] 백준 9663 : N-Queen
문제 https://www.acmicpc.net/problem/9663 [ 문제 조건 ] 1 ≤ N < 15 출력 : 서로 공격할 수 없게 놓는 경우의 수 백트래킹 문제 → 개념을 알고 있어야 함 [ 해결순서 ] 체스판에 퀸을 놓기위한 조건은 퀸의 가로, 세로, 대각선에 위치한 곳에 두면 안된다. 백 트래킹 문제에선 퀸을 놓을 때 직전의 열에 두지 않는다고 한다. ( 중복제거를 위해 ) 하나의 행에 하나의 퀸만 놓을 수 있다. 그렇다면 N * N개의 경우의 수가 존재 할 텐데 이 중에서 서로 공격하지 않게 놓는 경우의 수를 구해야한다. nqeen()은 퀸을 오른쪽 행으로 하나씩 옮기면서 경우의 수를 확인하고 check()로 행은 비교할 필요가 없고 (3번참고) 같은 열인지, 대각선상에 있는지 비교한다. ..
[Python] 백준 2468번 - 안전 영역
문제 https://www.acmicpc.net/problem/2468 [ 문제 조건 ] 문제에서 예시를 들어 설명할 때 모든 경우를 다 조사해 보면 이라고 설명되어 있다. 즉, 모든 경우의 수를 조사해야 됨 (이라고 나는 이해했다.) 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력 [ 해결순서 ] 배열을 입력할 때 N 이상인 값들만 방문여부를 True 값으로 바꾸고 깊이우선탐색을 진행한다. 깊이우선탐색을 진행하고 끝날때 안전영역 값(count)을 늘린다. 또 깊이우선탐색을 반복해야하는데 현재 count 값이 1차에서 3번째 줄처럼 할려고 했으나, ..
[Python] map 함수로 2차원배열의 최대값 구하기
map ( 적용시킬 함수, 적용할 요소들 ) arr = [[0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 6, 12, 1], [0, 1, 0, 3, 0, 0], [0, 9, 0, 0, 4, 0]] # 각 배열의 최대값을 하나의 리스트로 print(list(map(max,arr))) # [1, 2, 12, 3, 9] # 2차원배열의 최대 값 출력 print(max(list(map(max,arr)))) #12

[Django] 페이징과 검색창 기능 구현하기
처음에 구현할 때 페이징을 쉽게 구현해놓고 검색기능을 구현하니 데이터가 보여지지가 않았다 🥲 페이징 구현하면 검색기능이 안되고, 검색기능 구현하면 페이징이 안되고 해서 엄청난 구글링과 조금의 생각을 통해 결국 해결했다. 책에 필요한 정보가 담긴 모델이다. 이 모델에 나는 데이터를 삽입했기 때문에 밑에 구현한 html 첨부했지만, 데이터 값이 보이는 것이다. CSV 파일 데이터베이스에 삽입하는 것도 정리해두었다. 참고링크 #기본적인 책 정보 class BookClassInfo(models.Model): title = models.CharField("책제목", max_length=45) image = models.ImageField("책표지", blank=True,null=True)..

[무접점 키보드] 한성 GK888B 키보드 실사용 리뷰
원래는 키보드에 별 관심이 없어 무난하고 가성비 갑인 로지텍 K380을 쓰고있었다. 기억은 안나지만 언젠가 유튜브 알고리즘으로 무접점 키보드 타건감을 듣게되어 거기에 빠져 결국 생애 첫 비싼(?) 키보드를 장만했다. 사실 산지는 2주 정도 되었는데 사용하면서 어땠는지 실사용 리뷰를 하려고 한다. 일단 제품은 한성 GK888B 흰색 제품이고, 가격은 다나와 기준 13만원 초반 정도 한다. 디자인은 흰색과 검은색 있는데, 검은색은 그냥 검은색이고, 흰색은 흰색과 회색의 조합이 잘 어울린다. 키보드를 사니 키캡도 바꾸고 싶은 욕심이 생기는데 기본 키보드의 키캡도 예쁘고 만족한다. 타자칠 때 보글보글 거림이 무접점 키보드의 최대 장점인 것 같다👏 근데 다른 타자를 칠 때는 괜찮은데 뭔가 스페이스 칠 때만 느낌이..
[Python] 백준 9020번 - 골드바흐의 추측
문제 9020번: 골드바흐의 추측 [ 문제 조건 ] 골드바흐 수 : 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다. 골드바흐 파티션이 여러개 인 경우는 두 소수의 차가 가장 작은 것이 답 [ 해결순서 ] 이 문제를 해결하기 전에 에라토스테네스의 체가 무엇인지 알아야한다. 소수인 값을 하나씩 기준으로 (이 값을 N이라 치자) N의 배수를 범위 내에 모두 지운다. 이걸 반복하고 반복문을 빠져나왔을 때 지워지지 않은 값이 소수인 것이다. 에라토스테네스의 체 코드 n = 100 a = [False,False] + [True]*(n-1) primes = [] for i in range(2, n+1): #n까지임 if a[i]: #값이 들어있으면 primes.append(i) # 2*i 인 이유는 그 값..
[Python] 백준 11052번 - 카드 구매하기
문제 11052번: 카드 구매하기 [ 문제 조건 ] 카드 개수 < 가격 i개의 카드, 가격은 Pi 즉, 가격을 최대값으로 구해야 한다. [ 예제 풀이 ] #1장 샀을때 최대가격 dp[1] =1 dp[1] = dp[1], dp[0] + list[1] #2장 샀을때 최대가격 dp[2] = 5 dp[2] = dp[2], dp[1] + list[1] #1 + 1 (1장짜리 2개) dp[2] = dp[2], dp[0] + list[2] #0 + 5 (2장짜리 1개) #3장 샀을때 최대가격 dp[3] = 6 dp[3] = dp[3], dp[2] + list[1] #5 + 1 (2장짜리 1개 + 1장짜리 1개) dp[3] = dp[3], dp[1] + list[2] #1 + 5 (1장짜리 2개 + 2장짜리 1개) d..

[Django] CSV 파일 import 해서 SQLite 데이터베이스에 넣기
프로젝트를 하다가 크롤링 한 데이터를 DB에 넣어야하는데, 어떻게 넣어야 하나 열심히 구글링해보고 유튜브를 찾아보다가 알게 되었다. 참고한 유튜브 링크이며 이를 바탕으로 정리하였다. 해결 방법 SQLite 터미널 다운로드 페이지를 타고 들어가서 자신의 운영체제에 맞는 파일을 다운받는다. 다운받고 폴더를 열면 3가지가 보이는데 SQLite Download Page Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful o..
[JAVA] 백준 1245 - 농장 관리
문제 1245번: 농장 관리 [ 문제 조건 ] 인접한 격자 8개를 모두 비교할 dx, dy 배열 산봉우리 높이 > 산봉우리 인접한 격자의 높이 산봉우리 총 갯수 = count 해당 값이 산봉우리 인지 아닌지 여부 = top [ 해결순서 ] 문제에서의 '인접하다' 정의를 먼저 이해해야한다. X, Y 좌표 차이가 1이하인 값인 인접한 값. 대각선 4군데 상하좌우 총 8개의 값을 비교하여 깊이우선탐색을 진행해야한다. 모든 farm 배열을 확인하여 방문하지 않은 값 중 0이 아닌 산봉우리가 될 수 있는 값들을 기준으로 dfs() 를 실행하는데 그 전에, 해당 값이 산봉우리라고 임의로 지정해두고 깊이우선탐색 실행 후에도 해당 값이 제일 높으면 그 때 총 값을 증가시킨다. 기존의 깊이우선탐색을 진행하..