일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가장 짧은 문자거리
- 배열
- 모든행과열대각선의합
- 등수구하기
- 임시반장 정하기
- 자바
- 투 포인터
- 최대 길이
- 10991
- java
- 아스키코드
- Pointer
- 10992
- 인프런
- 백준
- 누적 계산
- GitHub #Commit #BaekJoon
- 뒤집은 소수
- 두 배열 합치기
- 격자판
- 큰 수 출력하기
- 연속부분수열
- 알고리즘
- Two Pointer
- ArrayList
- 코테준비
- 공통원소 구하기
- 보이는 학생
- array
- 점수계산
- Today
- Total
목록전체 글 (154)
ezhoon

문제 한 개의 문자열 s와 문자 t가 주어진다. s의 각 문자가 문자 t와 떨어진 최소거리를 출력한다. 이해 문자열 s와 t는 공백으로 구분된다. 거리 입력을 위한 cnt=100 / 거리 값 누적을 위한 배열 answer s(i) == t 일 때는 0을 누적 s(i)!= t 일 때는 cnt++ 후 answer [i] = cnt 이 방법을 두 번 왼쪽에서부터 오른쪽 오른쪽에서 부터 왼쪽 2번 해주면 된다. 최소 거리이므로 왼쪽에서 부터 오른쪽에서 비교한 값이랑 오른쪽에서부터 왼쪽으로 비교한 값이 다르므로 어떻게 해결해야 할지 생각하기 왼쪽에서 부터 오른쪽으로 문자열s의 각 문자가 t와 떨어진 최소 거리 0 1 2 3 4 5 6 7 8 9 t e a c h e r m o d 101 0 1 2 3 0 1 2 ..

문제 문자와 숫자가 섞여있는 문자열이 주어진다. 숫자만 추출한 뒤 이것을 자연수로 만들어서 출력한다. 이해 문자와 숫자가 섞여있는 문자열 하나를 입력 후 숫자만 추출한다. 아스키 코드를 이용해서 숫자 일때만 빈공간에 쌓이게 하면 될 것 같다. 아스키코드 관련 문제풀이 숫자를 추출 할 때 0, 1, 2, 3 으로 추출 되면 앞에 0을 제외하고 123으로 출력되게 한다. 추출해서 나온 값에 Integer.parseInt() 해주면 int 형변환 되니 자연스럽게 앞자리 0은 없어질 것이다. ⚠️ 주의사항 숫자와 문자 섞여있는 문자열 입력 숫자만 추출해서 출력하되 자연수로 만들어서 출력한다. 문제풀이 import java.io.BufferedReader; import java.io.IOException; imp..

문제 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES" 아니면 "NO"를 출력하는 프로그램을 만드시오 알파벳만 가지고 회문을 검사하며 대소문자는 구분하지 않는다. 알파벳 이외의 문자들은 무시한다. 이해 우선 펠 린드 롬이 무엇인지부터 알아보자. 참고 블로그 우리 말로 ‘회문(回文)’으로 번역되며, 'eye' madam'처럼 역순으로 읽어도 같은 말이나 구절 또는 숫자를 말한다. 대소문자를 구분하지 않는다고 했으니 입력받은 문자열을 toUpperCase(), toLowerCase() 둘 중에 아무거나 사용해서 대소문자 통일시켜 줘야 할 것 같다. 알파벳이 아닌 특수문자들도 들어오니 알파벳들만 남을 수 있게끔 아래 처럼 해주면 될 것 같다. replaceAll("[^A-Z]","") ⚠️ 주의사항 대..

문제 첫 줄에 길이 100이 넘지 않는 공백이 없는 문자열 입력 회문 문자열이면 "YES" 아니면 "NO" 출력 더보기 더보기 회문 문자열이란 회문이란 앞으로 읽으나 뒤로 읽으나 문장이 같을 때 이 문자열을 회문이라고 합니다. 예로 "wow"라는 문자열을 앞으로 읽어나 뒤로 읽으나 같은 문자열입니다. 이걸 코딩을 한다면 어떻게 해야 할지 고민해보기 이해 새로운 String 객체를 만들어서 입력된 값의 반대로 저장한 후 원래 문자와 비교하는 방법 0번째와 마지막, 첫 번째와 마지막-1 ~~ 쭉 비교해서 다 같으면 YES 다르면 FALSE 리턴하는 방법 gooG이 입력됐다고 생각하면 아래와 같이 풀 수 있다. 즉 0번째와 마지막 문자 / 1번째와 마지막-1 ~~ 이렇게 쭉 비교해서 결괏값을 출력해주면 된다...

Set 컬렉션 Set 컬렉션은 저장 순서가 유지되지 않습니다. 주로 객체의 중복을 제거할 때 사용합니다. Set 인터페이스를 구현한 클래스로는 HashSet, TreeSet, LinkedHashSet이 있습니다. 주요 특징 HashSet - 정렬을 해주지 않아 따로 정렬을 해줘야 한다. TreeSet - 오름차순으로 자동정렬이 된다. LinkedHashSet - 입력된 순서대로 데이터를 관리해준다. 표로 정리하면 아래와 같다. 클래스 특징 HashSet 정렬이 필요없는 데이터를 저장한다. Set 중에 가장 성능이 좋다. TreeSet 저장된 데이터 값에 따라 정렬된다 (오름차순) HashSet보다 느리다. LinkedHashSet 저장된 순서에따라 값이 정렬된다. 셋 중 가장 느리다. Set의 가장 큰 ..

문제 한 개의 문자열 입력 중복된 문자 제거 후 출력 각 문자는 원래 문자열의 순서를 유지할 것 ⚠️ 주의사항 문자열의 순서를 유지해야 하므로 HashSet으로 정렬하기는 어려울 것 같으니 다른 방법을 찾아야 함 문제풀이 1. BufferedReader + StringBuilder + linkedHashSet + Iterator import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Java01_06 { public String solution(String str) { Set linkedHashSet = new LinkedHashSet(..

문제 영어 알파벳과 특수문자들이 섞여서 입력 된다. 특수문자는 자기 자리에 그대로 있으며 영어 알파벳끼리는 서로 위치를 바꿔준다. ⚠️ 주의사항 한쪽이라도 알파벳이 아닐경우 어떻게 할지 생각하기 문제풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Java01_05 { public String solution(String str){ String answer; char[] s=str.toCharArray(); int lt=0, rt=str.length()-1; while(lt

문제 첫 줄에 자연수 N이 주어진다. 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어진다 (영어만 가능) ⚠️주의사항 StringBuilder 사용하기 단어 뒤집어서 출력하기 good -> doog 문제풀이 1. BufferedReader + StringBuilder 사용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Java01_04 { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); public Stri..

문제 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하기 문장속의 각 단어는 공백으로 구분 ⚠️ 주의사항 공백으로 구분 할 것 가장 긴 단어를 출력하지만 같은 길이의 단어가 여러개일 경우 가장 앞쪽에 위치한 단어를 답으로 한다 문제풀이 1. BufferedReader + StringTokenizer + StringBuilder import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public String solution(String str) { int m = 0; String answ..

대문자와 소문자가 존재하는 문자열 입력받아 대문자는 소문자로 소문자는 대문자로 변환 후 출력하시오. ⚠️ 주의사항 문자열은 영어 알파벳으로만 구성 첫 줄에 문자열 입력 문제풀이 1. 아스키코드 값 사용해서 풀기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public String solution(String str) { StringBuilder sb = new StringBuilder(); for (char x : str.toCharArray()) { // 대소문자 아스키코드 값은 32가 차이난다 if (x >= 97 && x