본문 바로가기

Study32

(Java Greedy) 문자열안에 포함된 가장 긴 팰린드롬(palindrome)문자열 (Java / 거꾸로해도 같은 문자열 / 팰린드롬(palindrome) )문제거꾸로해도 같은 문자열을 팰린드롬(palindrome) 이라고 한단다.문자열이 주어지면 그안에 포함된 가장 긴 팰린드롬 문자열의 길이가 몇인지 구하는 알고리즘 ex) "dkwqabcdcbawp" 면 7을 반환 / "abba" 면 4를 반환 풀이를 보지않고 풀어서 정확한지는 모르겠지만 내가 푼 방식은 1. input(주어진 문자열)을 거꾸로 뒤집은 문자열을 만든다. (reverse) String input = "xxxabbbaoowla" -> String reverse = "alwooabbbaxxx" 2. input과 reverse에 같은 내용을 포함하는 가장 긴부분을 찾는다.String input = "xxxabbbaoowla".. 2019. 3. 15.
(JAVA) JAVA Stack을 활용하여 infix-postfix 변환 및 계산 //1. 수식에서 첫번째 항목을 빼냅니다.//2. 수식의 빼낸 항목이 피연산자라면 그대로 출력측으로 빼냅니다//3. 수식의 빼낸 항목이 연산자라면 스택의 최상위 원소와 비교합니다.//4. 빼낸 연산자의 우선순위가 스택의 최상위에 있는 원소보다 높으면 그대로 스택에 넣습니다.//5. 그렇지 않다면 스택의 최상위 원소를 출력측으로 뺴내고 빼낸 연산자를 스택에 넣습니다.//6. 단, 여는 괄호'('가 나오면 닫는괄호')'가 나올 때까지 스택에 남아있게 되며, 닫는괄호')'가 나타나면 그때까지 여는괄호'('보다 상위에 있는 모든 연산자를 출력측으로 빼냅니다. 정말 열심히 찾다가 어디선가 푸는 방식을 주석으로 코드에 넣은건데 출처를 잊었네요.. 이 방법대로 구현하면 infix -> postfix 변환이 잘됩니다... 2019. 3. 15.
면접대비 용어정리 OOP : 객체 지향 프로그래밍(Object-Oriented Programming) 특성 : 추상화 캡슐화 상속 다형성 (추캡상다) 추상화 - 다른 객체들과 구분되는 핵심적인 특징들에만 집중함으로써, 복잡도를 관리할 수 있도록 한다. 상속 - 재사용으로 인해 코드가 줄어든다. 하위 클래스에서 속성이나 오퍼레이션을 다시 정의하지 않고 상속받아서 사용함으로써 코드가 줄어든다. 그리고 좀 더 범용성있게 사용할 수 있다. 다형성 - 상속을통해 기능을 확장하거나 변경하는 것을 가능하게하고, 같은 클래스내에 코드길이를 줄인다. ORM : 관계형 테이터베이스 테이블과 객체 사이의 mapping 처리를 해주는 것을 ORM(Object relational Mapping)이라고 함. 출처 : https://jojoldu... 2019. 2. 11.
(딥러닝) 나는 Java가 주언어인데, 파이썬? 텐서플로우? 항상 딥러닝에 대해 관심은 어느정도 가지고 있었지만, 활용해서 개발할 기회는 없었다. 그래서 이번에는 꼭 딥러닝을 사용하는 회사에서 근무해보고싶은 생각이 크다! 하지만 내 주언어는 Java인데 딥러닝하면 모두 텐서플로우를 언급하고, 텐서플로우를 하려면 파이썬을 알아야한단다. 왜 파이썬, 텐서플로우? 처음에 텐서플로우를 하려면 파이썬을 알아야 한다길래 텐서플로우가 파이썬으로 이루어져 있는 줄 알았다.* 파이썬 vs 자바 관련 댓글 하지만 자바보다 더 느린 언어인 파이썬으로 딥러닝 알고리즘을 구동한다는 것은 이해가 되지 않았었다.알아보니 텐서플로우는 고성능의 C / C++ 로 구동되고 파이썬은 이 텐서플로우를 호출하는데에 사용하는 것이었다.그렇다면 자바로 텐서플로우를 호출하면 안되는 것인가? 자바/스프링으로.. 2019. 2. 11.
Docker란 무엇인가? Docker를 사용하는 이유/동작방식 Docker먼저, Docker란 무엇인가? AWS에서는 Docker를 애플리케이션을 신속하게 구축, 테스트 및 배포를 할수있는 소프트웨어 플랫폼으로 정의하였습니다. 스타트업 개발자로 일하면서 우리 서비스에 필요한 어플리케이션을 동작시킬 때 Docker를 굉장히 많이 사용하였습니다. 우리 서비스는 AWS를 사용하였는데 MSA 구조여서 그런지는 모르겠지만 EC2 인스턴스(조그만 컴퓨터 한대를 빌렸다고 생각하면 쉬울까요?)를 다수 사용하였고, 인스턴스마다 모두 Docker를 설치하여 성격에 맞는 것끼리 모아서 실행시켰던 기억이 납니다.(Ex : ui 관련된 어플리케이션 끼리, 개발용 끼리, 내부적으로 필요한 어플리케이션 끼리 등) 쓰면서도 왜 사용하는지 어떻게 동작하는지는 잘 모르고 명령어만 외웠던 기억이 있.. 2019. 1. 29.