전체 글

전체 글

    [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 [ 해결순서 ] 문제에서의 &#39;인접하다&#39; 정의를 먼저 이해해야한다. X, Y 좌표 차이가 1이하인 값인 인접한 값. 대각선 4군데 상하좌우 총 8개의 값을 비교하여 깊이우선탐색을 진행해야한다. 모든 farm 배열을 확인하여 방문하지 않은 값 중 0이 아닌 산봉우리가 될 수 있는 값들을 기준으로 dfs() 를 실행하는데 그 전에, 해당 값이 산봉우리라고 임의로 지정해두고 깊이우선탐색 실행 후에도 해당 값이 제일 높으면 그 때 총 값을 증가시킨다. 기존의 깊이우선탐색을 진행하..

    [JAVA] 백준 11057 - 오르막 수

    문제 11057번: 오르막 수 [ 문제 조건 ] N의 범위는 1~10000 오르막 수의 개수를 % 10007 [ 해결순서 ] 직접 노트에 적어보면서 규칙을 찾으려고 했다.이를 보면 점화식을 구할 수 있다. 이를 보면 점화식을 구할 수 있다. 각 자릿수별로 끝자리 0~9에 따라 들어갈 수 있는 경우의 수를 구해 해당 n의 경우의 수를 모두 더하면 총 오르막 수 의 개수를 구할 수 있다. 점화식 : dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) ✏️한줄평 쉽다고 생각했지만, 조금 생각을 해봐야하는 신박한 문제였다. 코드

    [JAVA] 백준 7569번 - 토마토

    문제 7569번: 토마토 [ 문제 조건 ] 입력 1 = 익은 토마토 0 = 익지않은 토마토 -1 = 토마토 없음 출력 0 = 저장될 때 모든 토마토 익음 1 = 모든 토마토 익지 못함 n = 모두 익을 때 까지 최소 며칠이 걸리는지 보관 후 하루가 지나면 익은 토마토와 인접한 건 익음 [ 해결순서 ] 여태까지 풀던 문제는 상하좌우만 비교해서 해결하면 됐으나, 위 아래도 비교해서 6가지 경우를 비교해야한다. 3차원 배열로 가로,세로,높이의 값을 입력받고 너비우선탐색의 대상은 익은 값만 이므로 입력받을 때, 토마토가 익은 것들만 큐에 넣는다. 큐에 넣은 것들을 하나씩 꺼내며 너비우선탐색 한다. 기존 유사한 BFS 문제의 조건 비교에서 (가로, 세로 비교했던 것) 추가로 높이만 비교하고 토마토가 익었으면 (값..

    [JAVA] 백준 1991번 - 트리순회

    문제 1991번: 트리 순회 [ 해결순서 ] 한줄에 띄어서 입력받으므로 띄어쓰기를 붙여 문자열을 배열로 전환하여 노드에 저장하였다. 문제를 해결하기 위해 노드, 트리 클래스가 있어야 한다. 노드 클래스 : 루트, 왼쪽 자식, 오른쪽 자식이 있고, 노드의 값을 입력받아 지정 가능하다. 트리 클래스 : 여러개의 노드가 모여 트리를 구성하므로, 노드가 있어야 함 add() : 트리에 노드를 추가하는 메소드이며 처음을 제외하고는 search()를 사용하여 추가. search() : 어떤 노드밑에 서브트리가 생기는지 재귀호출하며 찾음. 전위순회 preorder : 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 방문 중위순회 inorder : 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 방문 후위순회 postorder ..