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

문제 알파벳이 한 문자마다 '#' 또는 '*'이 일곱 개로 구성돼 있다. 예시로 “#*****#” 으로 구성된 문자가 입력되면 다음과 같은 규칙으로 해석한다 “#*****#”를 일곱 자리 이진수로 바꾼다 #은 1로 *은 0으로 즉 "1000001"로 변환된다. 바뀐 2진수를 10진수화 한다. -> 65 아스키 번호 65는 대문자 'A' 이다 첫 줄에는 보낸 문자의 개수를 입력한다. 두 번째 줄에는 문자의 개수의 일곱 배만큼의 # 또는 *가 입력된다. 이해 아스키코드 알파벳 문제 풀이 위 링크에 아스키코드 값 정리해둔 이미지가 있고 예제 문제 풀이가 있다. 2진수로 변환할 때는 오른쪽에서부터 1 2 4 8 16으로 변환되므로 for문을 오른쪽에서 왼쪽으로 해야 한다. 다른 방법으로는 Integer.pars..

문제 알파벳 대문자로 이루어진 문자열 입력 같은 문자가 반복되는 문자 바로 오른쪽에 반복 횟수 표기 (단 1인 경우 생략하고 알파벳 출력) 이해 charAt(i)!= str.charAt(i+1) 다음 글자와 다른 경우 append(charAt(i)) 값 빈 문자열에 누적하고 false 인경우 cnt를 증가시킨다. 그 후 숫자를 넣어야 하는지 판별해야 하므로 if(cnt > 1) 1 인 경우는 생략하고 true 인 경우 append(cnt) 후 cnt=1 초기화해준다. ⚠️ 주의사항 1은 생략하므로 조건부 만들 때 ' = ' 들어가면 안 되는 것 동일한 문자가 반복되는 경우 문자 + 숫자라는 점 풀이 import java.io.BufferedReader; import java.io.IOException; ..

문제 한 개의 문자열 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 ~~ 이렇게 쭉 비교해서 결괏값을 출력해주면 된다...

문제 한 개의 문자열 입력 중복된 문자 제거 후 출력 각 문자는 원래 문자열의 순서를 유지할 것 ⚠️ 주의사항 문자열의 순서를 유지해야 하므로 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..