본문 바로가기

전체 글

(155)
백준 2608번 : 로마 숫자 문제 2608번: 로마 숫자 (acmicpc.net) 2608번: 로마 숫자 첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같고, 두 수의 합은 4000보다 작다. www.acmicpc.net 주어진 로마 숫자의 합을 정수와 로마 숫자로 출력하는 문제 아이디어 🔸로마문자 to 정수 : 해시맵 이용 순방향의 경우 바로 정수로 바꾸고, 역방향의 경우 다음 문자와 결합하여 정수로 바꿈 마지막 문자는 바로 정수로 바꿈 주어진 로마자가 하나인 경우 구현한 방향 로직을 실행할 수 없으므로 따로 빼주어서 바로 정수로 바꿈 🔸정수 to 로마문자 : 배열 2개 이용 키를 기준으로 정렬된 해시맵을 구현하기 위해서 정적배열 2개 이용 각 인덱스끼리 매핑되게 하면, '정..
[MySQL] 연동을 설정하는 파일에 올바른 정보 넣기 문제 상황 WEB-INF 파일 안에 있는 applicationContext.xml 에서 DB 연동을 관리하고 있다. 여기서 알맞은 데이터베이스의 정보를 적어야 올바르게 연결될 수 있다. 즉, 아래 코드의 빨간색 부분을 내 mysql의 정보로 바꾸면 된다. 해결 방법 1) MySQL Workbench를 실행하여 새로운 connection을 생성한다. 2) connection 이름과 username / password를 설정한다. password는 store in vault ... 를 누르고 내 username에 맞는 패스워드를 입력해주면 된다. ❗이때 입력하는 유저 이름과 비밀번호는 새로 설정하는게 아니라, 내가 미리 만들어둔 접근 정보임❗ 3) Test Connection을 눌러서 연결이 되는지 확인한다..
자바로 html 출력하기 실습 내용 자바의 시스템 속성을 출력하는 html을 자바로 출력해보고자 한다. 🔸 요구 사항 - 자바의 시스템 속성 가져오기 - html 파일 생성 & 작성 - html로 테이블 만들기 자바의 시스템 속성 가져오기 System.getProperty() 사용 자바를 실행할 때, 실행되는 곳의 정보를 얻어오거나 운영체제의 정보가 필요할 때가 있다. 이때 실행 위치에 있는 파일의 정보를 읽어드려야 하는데, 이를 위해 System.getProperty() 를 사용한다. System.getProperty()의 인자로 문자열을 적어넣으면 그 값이 String 으로 출력된다. e.g System.out.print(System.getProperty("os.name");) // => Windows 11가 출력됨 시스템 ..
[JAVA] int에서 오버플로우 문제 발생했을 때 int에서 오버플로우 문제 발생했을 때 발생 원인 int는 4byte즉, 32bit로 -2^31 ~ +2^31-1 즉, 약 ±2,000,000,000 까지만 표현이 가능하고 이 범위를 넘어가면 오버플로우가 발생한다. 발생 상황 int를 여러번 곱하는 for문에서 주로 발생한다. 또한, 1,000,000,007로 나눈 나머지를 요구하는 문제가 있으면 오버플로우가 발생하는지를 의심해봐야한다. 해결 방법 아래 내용 중 하나라도 지키지 않으면 오버플로우가 발생할 수 있다. 1) 계산하는 변수를 int가 아니라 long으로 선언한다. 2) for문 안에서 %= 1,000,000,007을 해준다. for문에서 곱셈을 다 하고 return 직전에 mod연산을 해주면 이미 오버헤드가 발생한 이후이므로 효과가 없다. 3..
[JAVA] Array to List 알고리즘 문제를 풀 때 입력은 array로 주어지지만, 이 arryay에 접근해서 다양한 조작을 해야 할 때가 많다. 이때 배열을 List형 컬랙션으로 바꾸면 add로 삽입, remove로 삭제, set으로 수정, contains와 indexOf로 탐색 등 다양한 조작이 가능하다. 배열을 리스트로 바꾸기 위한 키워드는 Arrays.asList(arr) 와 Collections.addAll(list, arr); 이다. 1. Arrays.asList(arr) List list = Arrays.asList(arr); 를 사용하여 배열을 List로 바꿀 수 있다. ※ 주의 : 여기서 asList( )메소드가 리턴하는 List는 불변(unmodifiable) 속성의 list view를 리턴한다. unmodifia..
[프로그래머스] 숫자 문자열과 영단어 문제 코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 [러프한 아이디어] step1) 영어 단어가 존재하는지 탐색 step2) 존재하는 위치에서 char 하나만 남기고 삭제 step3) 남은 하나의 char은 숫자로 변환 [아이디어 구현] step 1~3를 하며 문자열 수정이 자유롭도록 StringBuilder 사용 step1) 영어 단어가 존재하는지 탐색 : 단어가 담긴 자료구조를 돌면서 sb.indexOf(str)를 하고, -1이 아닐 경우 ste..
[JAVA] 문자열 자르기 substring과 split 자바에서 문자열은 substring(start_idx, (end_idx))과 split("")으로 자를 수 있다. substring과 indexOf(str)를 같이 사용하면 특정 문자열이 나오는 시점부터 끝까지 자를 수 있다. split은 주로 구분자를 이용해서 문자열 배열을 만들 때 사용한다. substring 주의사항 : 예외 처리 substring에서 파라미터로 넘겨주는 idx가 string의 영역을 넘어가면, StringIndexOutOfBoundsException가 발생할 수 있다. 따라서 try - catch 구분으로 .substring( )을 감싸주는게 바람직하다. split 주의사항 : 정규식 기호 Java API에서 split를 찾아보면 Splits this..
[JAVA] StringBuilder 주요 메소드와 사용 방법 String 클래스와 동일 메소드 charAt(int idx) : 특정 인덱스 위치의 문자 반환 indexOf(String str) / lastIndexOf(String str) : 문자열 검색해서 첫번째 / 마지막 위치 반환 substring(int start, (int end)) : 인덱싱. 파라미터가 하나라면 해당 인덱스부터 끝까지, 두개라면 시작점과 끝점-1 까지 인덱싱 length() : 문자열 길이 리턴 문자열 처리 추가 .append(String str) : 맨 뒤에 문자열을 추가 .insert(int idx, String str) : idx의 위치에 문자열 추가 삭제 .deleteCharAt(int index) : 인덱스에 위치한 문자 하나를 삭제한다. (sb.deleteCharAt(3))..