전체 글 104

백준 1620 나는야 포켓몬 마스터 이다솜 [JAVA]

리뷰 시간초과 HashMap 사용. key값이 입력되면 map.get(key)로 value값을 얻고, value값이 입력되면 map.setKey()를 반복문으로 돌리면서 map.get(key)와 value값을 대조해 올바른 key값을 얻었다. map.setKey() 반복문을 최대 100000번 돌리는 과정에서 시간초과가 발생한 것 같다. 위의 문제 해결을 위해, HashMap과 ArrayList 두개를 사용해서 값을 저장한 뒤, 문자가 입력될 경우에는 map.get(key)를 사용해 값을 얻고, 숫자가 입력될 경우에는 setKey()반복문 대신 list.get(int)를 사용해서 즉시 값을 얻도록 했다. 공부한 것 HashMap key값으로 value값 찾기 map.get(key값) HashMap val..

ALGORITHM 2024.01.28

백준 2745 진법 변환 [JAVA]

리뷰 성공 char타입 계산 실수가 여러번 있었다. 공부한 것 제곱 메소드 : Math.pow(double A, double B) = A의 B승 char타입 값이 숫자인지 확인하는 메소드 : boolean Character.isDigit(char C) char타입 연산 방법 정리 //주요 아스키코드 문자 ASCII CODE 0 48 A 65 a 97 //char타입 비교 시 따옴표 붙이기 n.charAt(i) == 1 //(x) n.charAt(i) == '1' //(o) //char타입 숫자를 int로 변환하려고 할 때, (int)를 붙이면 아스키코드 값이 반환된다. //char타입 숫자 - '0' 을 하면 유니코드로값으로 연산 후 10진수와 동일한 값을 반환한다. arrn[i] = (int)n.cha..

ALGORITHM 2024.01.04

백준 1934 최소공배수 - 3가지 방법 [JAVA]

리뷰 메모리 초과 for문 사용, 1씩 증가시키면서 곱한 뒤 HashSet에 넣는 작업을 반복했고 도중에 add()메소드가 false를 리턴하면 그 값을 최소공배수로 출력하였다. 입력되는 수가 크면 클수록 앞에서부터 하나씩 비교하는 건 비효율적이어서 메모리 초과가 뜬 것 같다. 위의 메모리 초과 문제를 해결하기 위해 둘 중 큰 수만 for문 사용, 1씩 증가시키면서 곱한 뒤 작은 수로 나눴을 때 나머지가 0이 되는 값을 최소공배수로 출력하였다. 공부한 것 추가적으로 최소공배수를 구하는 방법으로는 유클리드 호제법이 있다. 최소공배수 = 두 수의 곱/최대공약수 문제 더보기 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를..

ALGORITHM 2024.01.02

백준 10809 알파벳 찾기 [JAVA]

리뷰 성공 배열 공간 낭비가 있었다. char타입 a(97)~z(122)를 배열에 넣으려고 char[123]을 생성했다. 공부한 것 a~z는 "각 알파벳- a"를 하면 "0,1,2...N"이 나오기때문에 배열에 순서대로 넣을 수 있다. char타입 배열 값 존재 확인 시 "!=null"이 아니라, "!=0"으로 비교한다 ( 10진수 0이 char타입 NUL). indexOf()는 문자(열)을 앞에서부터 순차적으로 찾으며 처음 발견된 인덱스를 반환하고, 찾지 못할 경우 -1을 반환한다. lastIndexOf()는 뒤에서부터 찾는다. 문제 더보기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -..

ALGORITHM 2023.12.17

AWS EC2 FreeTier 사용법 2 (JDK, Tomcat설치 및 WAR파일 배포)

EC2 접속 ssh -i [키페어경로] [AWS인스턴스연결 사용자아이디]@[퍼블릭IPv4주소] yes "[AWS인스턴스연결 사용자아이디]@ip ~" 와 같이 접속자 뜨면 성공 JDK 설치 sudo apt-get update sudo apt-get install openjdk-11-jdk yes - 설치 확인 java -version - 설치 확인 javac -version 톰캣 wget설치 및 실행 - 설치 폴더 생성 sudo mkdir /home/tomcat - 최신버전 설치 https://tomcat.apache.org/download-90.cgi 에서 tar.gz 링크 복사 cd /home/tomcat sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9...

DEVOPS 2023.03.10

AWS EC2 FreeTier 사용법 1 (AWS 설정)

구축할 EC2/RDS 환경 ubuntu 22.04.1 LTS(GNU/Linux 5.15.0-1031-aws x86_64) openjdk 11.0.18 Tomcat 9.0.73 MySQL Community 8.0.31 가입 기본 지원 무료 플랜 선택 후 가입 -> AWS Management Console로 이동 -> 루트 사용자로 로그인 -> 오른쪽 상단 리전 선택 (서울) EC2 인스턴스 시작 -> 이름 및 태그 설정 -> 애플리케이션 및 OS 이미지 (AMI) 우분투 선택 -> 인스턴스 유형 t2.mocro 선택 -> 스토리지 30gib -> 네트워크 설정 ssh https http 트래픽 허용 모두 체크 or 편집 포트번호 직접 입력 -> 키페어 생성 -> 고급 세부 정보 새 IAM 프로파일 생성 -..

DEVOPS 2023.03.09

target폴더, m2e-wtp 폴더란?

깃허브 사용 중 target - m2e-wtp 폴더가 자동으로 업데이트 되는 걸 보고 궁금해서 찾아보았다. target폴더란? : 빌드프로세스의 마지막 output을 포함하고 있으며 애플리케이션을 배포 또는 운영하는데 사용되기 때문에 빌드 과정에서 중요한 역할을 한다. 예를 들어 maven Java 프로젝트에서 target 폴더는 빌드과정 중에 만들어지며 컴파일된 자바 코드와 애플리케이션을 구동하는데 필요한 다른 자원들을 포함한다. JAR 또는 WAR 파일과 같이 빌드 결과인 output이 target 폴더에 위치된다. m2e-wtp 폴더란? : 웹애플리케이션이 빌드되고 적합한 설정파일과 함께 서버에 배포되는 데 중요한 역할을 한다. m2e-wtp 폴더는 maven 웹 애플리케이션 개발 시 이클립스와 결..

ETC 2023.03.08

오류 AWS EC2 404 찾을 수 없음, IllegalStateException

상황 AWS에 스프링 레거시 war 파일을 배포한 후, 주소창에 "퍼블릭ip:8080" 입력 시 톰캣 기본페이지는 잘 뜨는데 내 프로젝트명를 추가하면 404에러가 발생했다. HTTP 상태 404 – 찾을 수 없음 타입 상태 보고 메시지 The requested resource [...] is not available 설명 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. 톰캣 로그를 확인해 보니 프로젝트 실행 시 exception이 발생했다. java.base@11.0.18/java.lang.Thread.run(Thread.java:829) 06-Mar-2023 12:18:57.099 INFO [mysql-cj-aband..

ERROR RESOLVING 2023.03.07

GITHUB 사용법

기본 1. 깃허브 접속 후 repository 생성하기 2. 로컬 저장소 설정 및 로컬에서 repository에 파일 업로드하기 왼쪽 상단 file 클릭 - clone repository - 불러올 repository 선택 및 로컬에 저장할 위치 지정 - 내 컴퓨터 로컬 지정 폴더에 깃허브에 올릴 파일 넣기 - github desktop에 해당 파일이 표시됨 - 설명 작성 후 commit - push 더보기 push 되돌리기 : 좌측 history에서 해당 기록 우클릭 - Revert changes in commit - 상단 Push origin 사용법 1. 깃허브 레포지토리 연결하기 상단 저장소 클릭 - 원격저장소 추가 - 깃허브 레포지토리 주소 입력 2. 로컬 저장소 연결하기 새 탭 열기 - add ..

DEVOPS 2023.03.02