본문 바로가기
코딩테스트/인프런

인프런 JAVA 알고리즘 정리(문자열 1번~12번)

by 고구마는호박고구마 2023. 3. 28.

1. 문자찾기
 - //char 입력 = sc.next().charAt(0)
 -//char Character.toUpperCase(문자);


2. 대소문자 변환
 // Character 클래스 활용 isUpperCase(문자) 대문자인지
 // 97~122 소문자- 65~95 대문자 아스키 코드 대 소문자 32 차이 
 

3. 문장 속 단어
 // 스페이스 포함 문자열 입력 nextLine()
 // split()메서드 활용하여 가장 긴 문자열 찾기
 // String.indexOf(문자) 문자가 맨 처음~ 발견되는 인덱스 번호         


4. 단어 뒤집기
 // StringBuilder reverse() 단어 뒤집기 // toString() 문자열로 변환
 // String 배열-> String = String.join("", 스트링배열);
 // char 배열 -> String = String str = new String(문자배열);
 // char 배열-> String =  String.valueOf(문자배열);


5. 특정 문자 뒤집기
 // lt rt 설정후 처음과 양끝 교환
 // 특수문자면 넘긴다. Character.isAlphabetic(문자) 알파벳이면 참


6. 중복문자제거
 // 처음 나온문자면 indexOf()의 값이랑 i 값이 같음
 // 첫 인덱스가 현재 위치랑 같다? 그럼 처음 다르다 전에 나온 문자
 //if(a.indexOf(a.charAt(i))==i) result += a.charAt(i);
 // String.indexOf(문자) 문자가 맨 처음~ 발견되는 인덱스 번호       


7. 회문 문자열
 // StringBuilder 클래스의 reverse() 뒤집기 메서드로 비교   

8. 팰린드롬
  // replaceAll() 정규식 사용하여 문자열 변경
  // replaceAll("[A-Z]" , ""); A-Z문자이면 ""로 변경
  // replaceAll("[^A-Z]" , ""); A-Z문자아니면 ""로 변경


9. 숫자만 추출
  // Character.isDigit(문자) 숫자인지 
  // 0 3 1 5 -> 315 값으로 -> 지금값 * 10 + 현재값 or Integer.parseInt(문자열)
 // a = a.replaceAll("[^0-9]",""); 숫자가 아니면 다 빈문자로 바꾸기 


10. 문자거리
  // 오른쪽으로 스캔 , 왼쪽으로 스캔하고 둘 중 거리가 작으면 채택
 // e를 만나면 0으로 초기화


11. 문자열 압축
  // 문자열 배열 전 순서랑 문자가 같은지 비교 -> 
  // 전 문자랑 비교 해야되기 때문에 마지막 문자는 비교할 수 없음
  // -> 마지막 문자 비교를 위한 배열에 더미 변수추가


12. 암호
  // escape 문자 표현시 앞에  \\ 를 붙인다. replaceAll("\\*","0");
 // 10진을 2진수로 Integer.parseInt(문자열2진, 2진) -> 10진수 변환

댓글