알고리즘/문자열, 정렬 38

[알고리즘] 에라토스테네스의 체 with Java, int[] 초기화

33데이날도 역시 알고리즘~ 오늘 배운 것 1. int[] 배열의 초기화는 0으로 되어있다. 2. 문제 풀이 . 일단 거르고, 다시 for문을 돌면서 갯수를 카운팅하려했음 -> 돌면서 한번에 카운팅 가능 import java.util.Scanner; public class Main { public static void solution(int str) { int[] arr = new int[str+1]; int answer = 0; for (int i = 2; i

[알고리즘] 가위 바위 보 with Java, else if 에 대한 생각

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 문제 풀이 . else if 로직에 대한 이해도를 높이는 계기가 되었다. . 비기는 로직 > A가 이기는 로직 > else B가 이기는 로직 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList a = new ArrayList(); ArrayList b = new ArrayList..

[알고리즘] 보이는 학생 with Java

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 머리속으로 알고리즘 그리기 . 시나리오 흐름대로 한번 쭉 진행하고, 알고리즘적으로 구현해야 할 코드가 무엇인지 대략적으로라도 생각해보는 자세가 필요한 듯하다. 2. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); f..

[알고리즘] 큰 수 출력하기 with Java

배열편을 공부해보고 있다. 이번 편은 어려운 로직은 딱히 없어서 복습한다는 느낌으로 풀고 갔다. 오늘 배운 것 1. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); for (int j = 0; j < i; j++) { integers.add(kb.nextInt()); } solution(i,integers); } private static void solution(in..

[알고리즘] 문자열 총 정리 with Java

문자열 편을 다 보고 나서 나름대로 정리를 해보았다. 자고로,, 공부란 끊임없는 기억의 재조합과 반복이라고 생각한다. 이를 위해 계속해서 복습해서 내 것으로 만들어야겠다는 생각을 했다. 문자열 알고리즘을 배우면서 나름 유효했던 배움들을 기록하고 정리해보았다. 배운 것 정리 1. Scanner . 값을 주로 읽기 위해 사용하는 객체 . next() : 한 문자열 읽기 가능 . nextLine() : 한 줄 읽기 가능 . nextInt() : 한 정수 읽기 가능 . next().charAt(0) : 한 문자 읽기 가능 // 사용법 Scanner sc = new Scanner(System.in); 2. s.{ toUpperCase(), toLowerCase() } . 문자열을 대문자로 바꾸기 위해 사용 Str..

[알고리즘] 암호 with Java, replace(), subString(a,b),parseInt(a,2)

문자열 마지막 문제. 여러 가지 꿀팁을 알게 된 것 같아 뿌듯하다. 까먹지 않게 자주자주 복습해주어야겠다. 오늘 배운 것 1. replace('#','1').replace('*','0') replace는 chain처럼 여러 번 사용 가능하다. String tmp = str.substring(0,7).replace('#', '1').replace('*', '0'); 2. 2진수를 10진수로 바꾸기 Integer.parseInt(i,2)를 사용하면 가능하다. 뒤쪽에는 몇 진수로 들어갔는지 입력해주면 된다. String tmp = '100'; int num = Integer.parseInt(tmp,2); System.out.println(num);// 4 3. subString(a, b) . subString..

[알고리즘] 문자열 압축 with Java, 문자열에 빈 문자 하나 더해주기

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자열에 빈 문자 하나 더해주기 문자열 전체를 순회하고 싶을 때, 빈 문자열을 하나 더해주는 포인트를 배웠다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static String solution(String str){ String answer = ""; str +=" "; char[] chars = str.toCharArray(); int cnt = 1; for (int i = 0; i < chars.length-1; i++) { if(chars[i] == chars[i+1]){ cnt++; }else{ answer+=chars[i]; if..

[알고리즘] 가장 짧은 문자거리 with Java, 거리 구하는 것에 대한 생각

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자 간 거리를 구하는 방법 로직 앞으로 갔다 뒤로 갔다 한 번씩 해주면 된다. 방향 설정하는 게 중요하다. 앞으로 가면서 최소 거리를 설정하고, 다시 되돌아오면서 최소 거리를 비교하는 로직. 2. 문제 풀이 import java.util.Scanner; public class Main { public static int[] solution(String str,char c){ int [] answer = new int[str.length()]; char[] chars = str.toCharArray(); int p = str.length(); for (int i = 0; i < answer.length; i..

[알고리즘] 숫자만 추출 with Java, isDigit()

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. Character.isDigit(c) 숫자인지 판별해주는 메서드 System.out.println(Character.isDigit('8'));// true 2. ASCII 숫자 '0' ~ '9' : 48 ~ 57 3. 문제 풀이 import java.util.Scanner; public class Main { public static int solution(String str) { int answer = 0; char[] chars = str.toCharArray(); for (int i = 0; i =48 && chars[i]