반응형

java 32

[코드트리/문자열] 미는 횟수 (feat.Java)

https://www.codetree.ai/problems/number-of-pushes?utm_source=clipboard&utm_medium=text import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { // 문자열을 미는 함수 public static String push(String a){ String pushed = "" + a.charAt(a.length()-1); // a의 마지막 문자로 초기화 int idx = 0; // 문자열 캐릭터를 하나씩 돌며 idx 1부터 문자열 a의 끝까지 붙이고, 그 후 다시 idx를 0으로 만들어 남은 앞의 캐릭..

[Leetcode/Hashmap] 242. Anagram (feat.Java)

https://leetcode.com/problems/valid-anagram/ class Solution { public boolean isAnagram(String s, String t) { HashMap hm = new HashMap(); boolean answer = true; // s의 캐릭터를 hm에 담는다. // key에 없으면 1로 디폴트 세팅, 있으면 값에 +1 for(int i = 0; i < s.length(); i++){ if(hm.containsKey(s.charAt(i))){ System.out.print(hm.get(s.charAt(i))); hm.put(s.charAt(i), hm.get(s.charAt(i))+1); } else { hm.put(s.charAt(i), 1);..

[Leetcode/Hashmap] 217. Contains Duplicate (feat.Java)

https://leetcode.com/problems/contains-duplicate/description/ class Solution { public boolean containsDuplicate(int[] nums) { HashMap hm = new HashMap(); boolean answer = false; for(int i = 0; i < nums.length; i++){ if(hm.containsKey(nums[i])){ answer = true; break; } else { hm.put(nums[i], true); } } return answer; } } 해시맵을 알고리즘에 접목하면 이전의 데이터들을 저장해놨다가 바로 꺼내다 로직을 만들 수 있다는 장점이 있다. 루프를 돌며 이미 저장된 값..

[종만북] 보글 게임 with Java

[ 문제 ] 5 X 5 크기의 알파벳 격자를 가지고 상하좌우/대각선으로 인접한 칸들의 글자들을 이어서 단어를 찾아내는 것. 한 글자가 두 번 이상 사용될수도 있음. 재귀함수가 무엇인지 이해할 수 있었던 문제. package jongman.bruteForce; public class Boggle { //@1. static int[] dx = { -1, -1, -1, 1, 1, 1, 0, 0 }; static int[] dy = {-1, 0, 1, -1, 0, 1, -1, 1 }; static char[][] board = { {'U', 'R', 'L', 'P', 'M'}, {'X', 'P', 'R', 'E', 'T'}, {'G', 'I', 'A', 'E', 'T'}, {'X', 'T', 'N', 'Z', ..

[ JAVA 수업 DAY 12 ] jar 파일 활용, Collection

과제 피드백 cf) 이클립스에서 cmd 키 누르고 메소드에 마우스 갖다대면 해당 메소드로 이동 가능. cf) 루프를 빠져나올때 break 한번만쓰면 안될땐 키워드를 써서 break loop 이런식으로도 가능하지만, System.exit(0);을 쓰면 프로그램이 아예 종료된다. cf) 보통 화면에 보여주는 기능클래스는 View라 하고, 원래는 프린트하는 클래스도 따로있다. cf) 변수나 메소드 이름은 언더바로 시작을 할 수 있긴하지만, 언더바로 시작하는 변수나 메소드들은 시스템을 건드리는 기능을 하는 아이들이다. SimpleDateFormate 클래스 우리가 원하는 포맷으로 연 원 일 시 분 초를 뽑아낼 수 있다. 날짜 객체로부터 원하는 형태의 문자열로 변환한다. 특정한 포맷 문자열을 사용하여 날짜 정보를..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 10 - 11 ] Final, 인터페이스+, 예외처리, Java API

Final public static final int MAX = 100; => 상수변수를 만들어줄때 붙여주는 키워드. 자바에서는 변수뿐만 아니라 메소드나 클래스에도 붙을수 있다. 변수 : 상수 메소드 : 오버라이딩 금지 클래스 : 상속을 금지 ex) class Printer { void copyright() { //=> final 을 붙여줘야만 자식클래스에서 재정의를 못하게 할 수 있음. } } class LGPrinter extends Printer { public void copyright() { //=> 자식클래스에서 재정의로 저작권을 바꿔버릴수도 있음. … } } 인터페이스 + 자바 1.8버젼부터 인터페이스에 구현된 메소드를 가질수있는 문법을 더 추가시켜줬다. 프..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 09 ] 객체형변환+, 인터페이스

과제풀이 원과 다른 세 도형들을 분리시키면 어떨까? 다른 세 도형은 평면도형이니까. Shape 추상 부모 클래스의 추상메소드를 PlaneShape 자식클래스가 오버라이딩해야하지만, 자식클래스도 추상클래스라면 오버라이딩 안해줘도 괜찮다. 그 자식의 자식들이 오버라이드 하니까. 즉, 추상클래스를 상속받은 추상클래스가 존재할수도 있다. => 설계쪽은 디자인패턴 책을 꼭 봐서 따로 공부를 해야된다. 경험으로 얻는거엔 한계가 있다. 영어 잘하면 head first design pattern 원서가 pdf로 돌아다니니 이걸 봐도 된다. 객체 형변환 객체 형변환의 전제조건은 서로 상속관계여야 한다는 것. [ 명시적 형변환 ] 부모의 값을 갖는 객체가 자식의 주소를 가지게 되는데, 자식의 공간이 부모보다 크기 때문에 ..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 07 - 08 ] 상속, 추상클래스, 객체형변환

상속 1. 확장성, 재사용성 2. 클래스 선언시 extends 키워드를 명시 3. 관계 - 부모 (상위, super) 클래스 - 자식 (하위, sub) 클래스 4. 자식클래스는 부모클래스에 선언되어있는 멤버변수, 메소드를 자신의 것처럼 사용할 수 있다. 단, 접근제한자에 따라 사용 여부가 달라진다. 5. super 키워드 6. 오버라이딩(재정의) class Parents { Parents() { } } class Child extends Parent { Child() { super(); } } Child c = new Child(); 객체를 생성하게되면 child 뿐만아니라 Parent 공간도 만들어진다. Child 디폴트 생성자에 super(); 라는 부모클래스 디폴트 생성자가 생략되있기 때문. 주의>..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 06 ] 문자열

문자열 정의 자바에서는 문자열을 모두 객체로 취급한다. 즉, 클래스로 구성되있다. 실제 문자열을 제공하는 클래스는 String, StringBuffer, StringBuilder이 있는데 셋 다 java.lang 패키지에 있다. 근데 java.lang 내의 클래스는 굳이 import하지 않아도 다 자동 임포트가 되어있다. 문자열은 length() 메소드를 쓰고, 배열은 length 변수를 쓴다. 배열은 클래스가 아니라서 메소드를 못쓴다. 컴퓨터가 내부적으로 length를 활용해 알아서 해석한다. String 클래스 : 한번 생성된다음 변하지 않는 문자열에 사용 일종의 상수문자열. 한번 문자열을 만들면 절대 변경할 수 없다. ex) String str = “Hello world”; str = “abc”; ..

Programming/Java 2020.05.05
반응형