본문 바로가기 메뉴 바로가기

최컬리의 개발 노트

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

최컬리의 개발 노트

검색하기 폼
  • 분류 전체보기 (18)
    • TIL (0)
    • 개발 (18)
      • 자바 (0)
      • 웹 (0)
      • JSP & 서블릿 (1)
      • 스프링 (2)
      • 리눅스 (0)
      • 운영체제 (0)
      • 네트워크 (0)
      • 자료구조 (0)
      • 알고리즘 (10)
      • 개발자로 성장하기 (2)
    • 그 외 (0)
  • 방명록

개발 (18)
[프로그래머스] 오른쪽에서 왼쪽으로 n회 접은 종이의 상태 나타내기

직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽으로 접습니다. 종이를 모두 접은 후에는 종이를 전부 펼칩니다. 종이를 펼칠 때는 종이를 접은 방법의 역순으로 펼쳐서 처음 놓여있던 때와 같은 상태가 되도록 합니다. 위와 같이 두 번 접은 후 종이를 펼치면 종이에 접은 흔적이 생기게 됩니다. ∨ 모양이 생긴 부분은 점선(0)으로, ∧ 모양이 생긴 부분은 실선(1)으로 표시했습니다. 종이를 접은 횟수 n이 매개변수로 주어질 때, 종이를 절반씩 n번 접은 후 모두 펼쳤을 때 생기는 접힌 부분의 모양을 배열에 담아 return 하도록 solution 함수를 완성해주세요..

개발/알고리즘 2019. 10. 28. 21:38
AOP에 대하여 (작성중)

AOP란 Aspect Oriented Programming의 약자로 보통 관점 지향 프로그래밍으로 번역되며 관점과 함께 기능이나 관심으로 번역될 수 있다. 여러 객체의 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있도록 하고, 재사용성을 높여준다. 스프링은 런타임에 프록시 객체를 생성해 공통 기능을 삽입하는 방식으로 AOP를 구현한다. 이러한 구현 방식 이외에 핵심 기능에 공통 기능을 삽입하는 방법에는 두 가지가 더 있다. 이는 스프링 AOP에서는 지원하지 않으며 AspectJ와 같은 AOP 전용 도구를 사용해서 적용할 수 있다. 컴파일 시점에 코드에 공통 기능을 삽입하는 방법 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법 주요 ..

개발/스프링 2019. 10. 24. 16:13
젠킨스(Jenkins) 설치 및 설정

1. 젠킨스 설치 (GCP) wget은 웹 서버로부터 콘텐츠를 가져오는 프로그램 sudo yum -y install wget sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum -y install jenkins 젠킨스 설치 확인 rpm -qa | grep jenkins ( 결과 : jenkins-2.189-1.1.moarch ) *버전은 다를 수 있음 2. 설정 ( 포트번호 변경) 젠킨스 설정 파일은 /etc/sysconfig 폴더에 있는 jenkins 파일 ..

개발 2019. 10. 24. 14:39
[Codility] Find the Longest Substring without Repeating Characters Three Times in a Row

'a'와 'b'로만 이루어진 문자열에서 같은 문자가 세 번 연속하는 경우를 포함하지 않는 substring 중 가장 긴 것의 길이를 구하는 문제이다. 이전 문자를 기억하기 위한 char형 변수와 연속한 문자가 이전 문자와 동일한지 여부를 체크하는 boolean 값을 이용해서 문자열의 현재 인덱스에서 같은 문자가 세 번 연속 등장했는지 검사한다. 분기문을 설명하자면, 현재 확인하고 있는 위치의 문자가 이전 문자와 같은 경우는 두 가지 경우로 나눌 수 있다. 같은 문자가 두 번째 등장한 경우와 세 번 이상 등장한 경우이다. 두 번째 등장했다면 identical의 값을 true로 변경하고 세 번째 등장할 경우를 대비한다. 그러고 나서 등장하는 문자가 이전과 다르다면 identical의 값을 false로 되돌리..

개발/알고리즘 2019. 10. 5. 22:33
[구름] 사탕 받기 카드 게임

오늘 본 테스트는 내게는 너무나 어려웠다. 시간이 충분하다면 재밌게 풀 수 있는 문제들이었던 것 같은데 시간 분배에 아주 실패했다. 우선 4개의 문제를 둘러보고 먼저 시작할 문제를 골라 시작했는데, 계속 조금만 더 디버깅해보면 될 것 같은 생각에 붙잡고 있다가 시간이 흐르고 다른 문제를 풀기 시작하기에는 시간이 부족할 것 같아서 이 문제라도 풀어내야겠다 하고 끝까지 붙잡고 있다가 시험이 끝난 뒤에도 한참 디버깅하고, 점심 먹고 다시 앉아 함수를 분리해서 코드를 다시 짜보았다. 입력으로 플레이어 수와 매 턴에 플레이어가 뽑아서 나온 카드가 순서대로 주어진다. 게임에는 A, J, Q, K 네 가지 카드가 사용되고, 각 카드마다 수행 내용이 다른데 마지막에 각 플레이어가 가지게 되는 사탕의 개수를 출력하는 것..

개발/알고리즘 2019. 9. 29. 16:44
삼항연산자, 비교연산자, Math.max()를 이용한 최대값 구하기 비교

문제를 풀고 제출했는데 시간 초과! 완전 탐색을 하기 위해 재귀를 이용하긴 했지만 꼭 필요한 경우만 돌았는데도 시간 초과라 의아했다. 완전 탐색이 아닌 다른 방법으로 푸는 방법도 있겠지만 Math.max() 메서드 사용이 시간 지연의 원인일 수도 있겠다는 생각이 들었다. 대충 검색을 해보니 Math.max()의 성능이 그리 좋지 않다는 것을 확인할 수 있었다. 그래서 삼항 연산자, 비교 연산자, Math.max()를 이용한 최댓값 구하기의 속도를 비교해 보았다. public class Test { public static void main(String[] args) { long start = 0, end = 0; long[] time = new long[4]; int fastest = 0; int[] a..

개발/알고리즘 2019. 9. 28. 14:21
이전 1 2 3 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
  • 블로그 소개
  • GitHub
TAG
  • 행사
  • 기초100제
  • 알고리즘
  • 모바일
  • 종이접기
  • 오픈소스
  • 안드로이드
  • codility
  • 코드업
  • 백준
  • jsp
  • 프로그래머스
  • 2019오픈소스개발자이야기
  • 웹프로그래밍
  • 디큐
  • 최범균
  • 네이버테크콘서트
  • 큐
more

Blog is powered by Tistory / Designed by Tistory

티스토리툴바