블로그 최신 글

  • 프로그래머스 숫자 짝꿍 with 자바

    프로그래머스 숫자 짝꿍 with 자바

    https://school.programmers.co.kr/learn/courses/30/lessons/131128 풀이 X와 Y가 가지고 있는 숫자들 중에서 중복된 숫자들만 찾으면 된다 우선 X를 한 글자씩 돌면서, 해당 숫자를 카운트 해준다 int[] count = new int[10]; // X가 가지고 있는 숫자 담을 배열 // X의 숫자 카운트 for (int i = 0; i < X.length(); i++) { char c = X.charAt(i); int n = c - '0'; count[n]++; } 그 후, Y를 한 글자씩 돌면서, 해당 숫자를 X가 가지고 있는지 확인하고 X가 가지고 있다면, 카운트에서 값을 하나 빼준다 이러면 X와 Y가 중복으로 가지고 있는 숫자임을 찾은 셈이므로 중복..

  • 백준 1541 잃어버린 괄호 with 자바

    백준 1541 잃어버린 괄호 with 자바

    https://www.acmicpc.net/problem/1541 풀이 먼저 "-"를 기준으로 문자열을 쪼개 준다 55-50+40의 경우 문자열을 쪼개면 55와 50+40으로 쪼갤 수 있으며 String 배열에 {"55", "50+40"}으로 담을 수 있다 이제, 배열의 0번 인덱스부터 뒤로 가면서 배열의 원소에 있는 수식을 계산하고, 계산한 결과를 빼주면 된다 0번 인덱스인 55에서 다음 원소인 50+40을 계산하고, 계산 결과인 90을 빼주면 된다 더하기만 있는 수식을 계산하는 함수이다 static int sumFormula(String s) { String[] ss = s.split("\+"); int sum = 0; for (int i = 0; i < ss.length; i++) { sum +=..

  • 백준 1043 거짓말 with 자바

    백준 1043 거짓말 with 자바

    https://www.acmicpc.net/problem/1043 풀이 먼저 각 파티에 있는 사람끼리 그래프로 연결하고 각 파티마다 진실을 알고 있는 사람이 있는 경우 해당 파티에 있는 나머지 사람들도 진실을 알고 있다고 상태를 변경한 다음 다시 한번 전체 파티를 돌면서 파티에 진실을 알고 있는 사람이 한 명이라도 있는 경우 전체 파티 개수에서 파티 개수를 빼주면 된다 전역 변수를 다음과 같이 선언해준다 static int N; static int M; static boolean[] visited; // 최종적으로 진실을 알고있는 사람 static Queue knowns; // 처음에 진실을 알고있는 사람 static Input[] inputs; // 받은 입력값 저장 (파티 정보) static Link..

  • 백준 2636 치즈 with 자바

    백준 2636 치즈 with 자바

    https://www.acmicpc.net/problem/2636 풀이 테두리(0,0)에서부터 2차원 배열을 치즈가 다 없어질 때까지 반복적으로 전체 탐색하면 된다 탐색할 때는 4방향 탐색을 하여 치즈가 있는 경우는 해당 위치를 기억하고 탐색이 다 끝나면 해당 위치의 치즈를 삭제해 주면 된다 전역 변수를 선언해 주고 static int N; static int M; static boolean[][] arr;// 2차원 배열 static int totalCount;// 전체 치즈 개수 static int[] di = {-1, 1, 0, 0};// 4방향 탐색에 쓰일 행 인덱스 static int[] dj = {0, 0, 1, -1};// 4방향 탐색에 쓰일 열 인덱스 static boolean[][] vi..

  • 백준 5430 AC with 자바

    백준 5430 AC with 자바

    https://www.acmicpc.net/problem/5430 풀이 더블리 링크드 리스트를 학습하기 아주 좋은 예제이다 진짜 그냥 더블리 링크드 리스트 구현해서 풀면 된다 링크드 리스트에 사용할 노드 클래스를 구현해주고 private static class Node { int n; Node pre; Node next; public Node(int n) { this.n = n; } } head와 tail을 선언하고 head와 tail 중 어떤 노드를 가리키는지 표시할 current와 아무것도 없는데 D를 한 경우를 확인하기 위한 에러 플래그를 선언해준다 static Node head; static Node tail; static Node current; static Boolean flag; 숫자 차례대..

최근 인기글

  • NAS Docker 컨테이너 시작시 자동 실행할 명령 설정하기

    NAS Docker 컨테이너 시작시 자동 실행할 명령 설정하기

    /root 디렉토리로 이동한다 vim 으로 .bashrc 파일 열어준다 G를 눌러 파일의 맨 끝으로 이동해 준다 o를 눌러 커서 위치를 바로 다음 줄로 옮기고 입력 모드를 시작한다 이제 컨테이너가 시작하면 자동으로 실행할 명령을 넣어주면 된다 필자의 경우 장고 서버를 실행해주는 명령을 넣었다 ESC를 누른 후 :를 누른 후 wq를 입력하고 빠져나온다 컨테이너를 재시작 하면 명령이 자동으로 실행되는 것을 확인할 수 있다

  • Direct Access Table과 Hash Table

    Direct Access Table과 Hash Table

    다음과 같은 key-value쌍의 데이터를 저장하려고 한다 key-value쌍을 저장하는 기본적인 두 가지 방법에 대해 알아보자 Direct Access Table 배열의 인덱스로 바로 접근하는 방법이다 배열에서 인덱스를 순서가 아니라 key라고 생각하고 key-value쌍을 저장하는 방식이다 key를 바탕으로 배열의 인덱스에 데이터를 저장한다 '57'키는 배열의 57번 인덱스에 저장하고 '208'키는 배열의 208번 인덱스에 저장하고 '900'키는 배열의 900번 인덱스에 저장하면 된다 각 key에 해당하는 value를 알고 싶으면 해당 인덱스에 접근하면 된다 가장 큰 장점은 배열의 인덱스에 O(1)으로 바로 접근할 수 있다는 것이다 반면에 단점은 공간을 많이 낭비한다는 것이다 위의 예시를 보면 사용하..

  • 한성컴퓨터 ULTRON 3567UC 리얼후기

    한성컴퓨터 ULTRON 3567UC 리얼후기

    주로 모니터 앞에서 시간을 보낸다면, 좀 더 넓고 큰 모니터가 필요할지도 모른다. 이번에 리뷰할 제품 한성컴퓨터 ULTRON 3567UC 커브드 게이밍 리얼 200 은 무려 35인치(89cm)의 21:9 화면비를 지원하며 커브드 화면으로 더 넓은 영역을 제공한다. 명암비에 강점을 둔 A-MVA+패널을 상하좌우 선명한 화질로 볼 수 있는 광시야각을 가지고 있다. 덕분에 조도가 낮은 이미지에서도 편안하게 모니터를 이용할 수 있다. 게이밍 환경에도 최적화가 되어있다. 144Hz를 뛰어넘는 리얼 200Hz를 지원해 초고사율로 더 매끄럽고 섬세한 게임 플레이가 가능하다. 또한, AMD FreeSync를 지원해 화면 찢어짐, 끊김 현상 없이 부드러운 게임 플레이가 가능하다. 사용자의 편의를 위한 기능들도 있다. 사..

  • 스택 - 괄호검사, DFS

    스택 - 괄호검사, DFS

    스택의 구현 스택을 구현하기 위해서 필요한 자료구조 - 자료를 선형으로 저장할 저장소. 배열을 이용하여 스택 구현이 가능하다 스택의 연산 삽입(push) - 저장소에 자료를 저장한다 삭제(pop) - 저장소에서 자료를 꺼낸다 isEmpty - 스택이 공백인지 아닌지를 확인한다 peek - 스택이 top에 있는 item을 반환한다 static int st[] = new int [10]; int top = -1; // 스택에 마지막 삽입된 원소의 위치를 가리킴 st[++top] = 1; // 단순하게 구현한push st[top--] // 단순하게 구현한 pop // 간단하게 push 구현 void push(int x) { if (++top > st.length) { // overflow } else { st..

  • NAS Docker를 이용한 Django환경 세팅(2/2) - Django 설치

    NAS Docker를 이용한 Django환경 세팅(2/2) - Django 설치

    파이썬 설치 pyenv를 이용하여 파이썬을 설치한다 원하는 버전으로 설치하면 된다 pyenv install 3.8.9 더보기 다음과 같은 에러가 난다면 아래 코드를 입력하면 된다 apt install libbz2-dev apt install libreadline-dev apt-get install libssl-dev https://devlog.jwgo.kr/2019/06/05/must-installed-lib-when-installing-python-using-pyenv/ https://toughrogrammer.tistory.com/231 django라는 이름으로 가상 환경을 만들어 주겠다 pyenv virtualenv 3.8.9 django 홈 디렉토리로 가서 가상환경을 local로 설정한다 cd /..