일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Array.asList
- 버블정렬
- 프로그래머스
- 구간합구하기
- java
- 싱글톤패턴
- 자바
- 11659
- 재귀함수
- GCP
- String.valueOf()
- 알고리즘
- vm인스턴스생성
- MySQL
- 성능테스트툴
- List.of
- OOP
- 재귀와반복문
- 인텔리제이
- 코드스테이츠
- 클라우드에서 도커 실행하기
- 백준 11659
- 코드스테이츠 백엔드
- 스택
- 투포인터알고리즘
- Spring MVC 구성요소
- 백준
- Spring Web MVC
- 코딩테스트
- Spring MVC 동작원리
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로

문제 풀이 선생님이 N의 학생을 일렬로 세웠을 때, 맨 앞에 있는 선생님이 볼 수 있는 학생의 수를 구해야 하는 문제입니다. 특정 한 학생이 선생님에게 보이는지 안 보이는지 판단할 수 있는 기준은 다음과 같습니다. 그 학생의 키가 앞 학생들 중 가장 큰 키보다 크면, 선생님은 해당 학생을 볼 수 있습니다. 따라서 이러한 기준을 가지고 문제를 풀겠습니다. 예외적으로 첫 번째 학생의 경우 앞의 학생이 없기 때문에 반드시 보이게 됩니다. 따라서 count 변수 초깃값을 1로 설정하고, max 변수 초깃값도 첫 번째 학생의 키로 설정합니다. 입력을 보면 최대 100,000명의 학생이 입력 될 수 있습니다. 입력이 많을 경우에는 Scanner 보다 BufferedReader를 사용하여 입력의 성능을 올릴 수 있습..

문제 풀이 입력으로 받은 배열의 원소 중 원소 값이 자신의 바로 앞 원소 값보다 큰 원소를 출력하는 문제다. 예외상황이 있다면 첫 번째 원소는 앞 원소가 없기 때문에 무조건 출력을 해야 한다. solution 함수 안에서 결과를 출력할 수도 있지만 ArrayList 형으로 반환해서 메인 함수에서 출력하도록 코드를 작성했다. 알고리즘은 다음과 같다. - 매개변수로 입력받은 배열의 첫 원소를 리스트에 담습니다. - 반복문을 사용하여 두 번째 원소부터 마지막 원소까지 접근하여 앞 원소와 비교하여 값이 크면 리스트에 담습니다. 소스코드 import java.util.ArrayList; import java.util.Scanner; /* * N개의 정수를 입력받아 자신의 앞 수보다 큰 수를 출력하세요. * - 첫..

문제 풀이 문자열을 뒤집는 문제. 알파벳일 때만 뒤집으라는 제약조건이 있기 때문에 reverse() 메소드를 이용하기 보다 직접 문자를 뒤집는 방법이 낫다. import java.util.Scanner; public class Main { public static String solution(String str) { char[] chars = str.toCharArray(); int leftIdx = 0; int rightIdx = chars.length-1; while(leftIdx < rightIdx) { // 왼쪽 문자가 특수문자인 경우 if (!Character.isAlphabetic(chars[leftIdx])) { leftIdx++; } // 오른쪽 문자가 특수문자인 경우 else if (!C..

문제 풀이 1 - StringBuilder의 reverse() 이용하기 String에는 문자열을 거꾸로 뒤집는 메소드가 없습니다. 그래서 문자열을 뒤집고 싶으면 StringBuilder로 변환하여 reverse() 메소드를 사용하고 다시 문자열로 변환하면 됩니다. import java.util.Scanner; public class Main { public static String[] solution(int n, String[] str) { String[] reverseWords = new String[n]; // 뒤집은 문자열을 담을 배열 StringBuilder sb; for (int i=0; i

문제 풀이 문자열로 문장이 주어지면 문장 속에서 가장 긴 단어를 찾는 문제입니다. 문제 푸는 흐름은 다음과 같습니다. 1. 매개변수로 입력받은 문장을 공백을 기준으로 분리합니다. 이렇게 분리된 문자열들은 이제 각각이 단어가 됩니다. 2. 각 단어들을 하나씩 비교하면서 지금까지 나온 단어보다 길이가 클 경우에 해당 단어와 길이를 저장합니다. 소스코드 package 인프런.문자열.문장속단어; import java.util.Scanner; /* * - 공백을 기준으로 문자열을 분리합니다. * - 분리된 문자열의 길이를 비교하여 비교하는 대상 문자열의 길이가 이전보다 길면 해당 문자열을 저장합니다. * */ public class Main { public static String solution(String s..
IDE(Integration Development Environment, 통합개발환경) IDE란 통합개발환경을 말합니다. 즉, 개발에 필요한 여러 가지를 모아둔 것이라고 볼 수 있는데요. 개발할 때에는 텍스트 에디터, 컴파일러, 인터프리터, 디버거 등 다양한 도구들이 필요합니다. IDE는 이러한 여러 가지 도구들을 한 번에 제공하는 프로그램이라고 볼 수 있습니다. 텍스트 에디터(Text Editor, 문서 편집기)란 단순히 텍스트 파일을 편집할 수 있는 소프트웨어를 말합니다. 예를들면 윈도우의 메모장도 텍스트 편집기 중 하나입니다. 컴파일러(Compiler)란 개발자가 작성한 소스코드를 컴퓨터가 읽을 수 있는 기계어로 바꿔주는 프로그램입니다. 컴퓨터는 high-level 언어를(자바, 파이썬 등) 이해할..

개요 자바를 공부하다 보면 위의 3가지 용어를 자주 접하게 됩니다. 그만큼 중요한 개념인데요. 애매한 상태로 남겨두기보다는 한 번에 확실하게 정리하는 게 좋을 것 같아서 작성하게 되었습니다. 각 개념을 설명하기 앞서 그림으로 큰 구조를 보겠습니다. JDK(Java Development Kit, 자바개발키트) - JDK란 자바 프로그램을 개발하기 위해 필요한 툴들을 모아 놓은 소프트웨어 패키지다. - JRE + 개발도구(컴파일러, 디버거 등) JRE(Java Runtime Environment, 자바실행환경) - JRE란 자바 프로그램을 실행하기 위해 필요한 환경이다. - JVM + 클래스 라이브러리 - 개발자뿐만이 아니라 자바 프로그램을 실행하는 사용자라면 JRE이 필요하다. JVM(Java Virtua..

문제 풀이 - 매개변수로 입력받은 문자열을 한 문자씩 검삭한다. - 만약 문자가 대문자라면 소문자로 바꾼다 - 만약 문자가 소문자라면 대문자로 바꾼다. 주의할 점은 문자열의 길이가 100이 나올 수 있다. 문자열을 붙이는 연산은 새로운 객체를 생성하는 작업이다. 따라서 StringBuilder를 사용해서 성능을 높이고 마지막에 String으로 변환한다. 소스코드1 - 아스키코드 성질을 이용한 풀이 package 인프런.문자열.대소문자변환.아스키코드이용; import java.util.Scanner; /* * 대소문자 변환 문제 * 한 문자열을 입력받고 소문자는 대문자로 바꾸고 대문자는 소문자로 바꾸는 문제 * 우선 문자열의 길이만큼 반복해서 한 문자씩 처리할건데. 문자열이 아닌 문자 단위로 처리하므로 향..