그리고 아래 상 문제는 풀지 못했다. 

 

'알고리즘' 카테고리의 다른 글

알고리즘 잘 푸는 방법 !  (2) 2022.11.24
[35] 두 개 뽑아서 더하기 JAVA  (1) 2022.11.23
[34] 같은 숫자는 싫어 JAVA  (0) 2022.11.23
[33] 최소직사각형 JAVA  (0) 2022.11.22
[32] 3진법 뒤집기 JAVA  (0) 2022.11.22

< 문제 푸는 순서 >

1. 문제를 꼼꼼하게 읽는다. - 문제를 읽으면서 요구사항을 파악. 길고 어려운 문제를 단순하게 정리한다.

2. 문제를 읽은 후 입출력 예를 본다. - 직관적이라 이해가 쉽다

3. 가만히 있지 않기. - 차라리 어디가 이해가 안되는지 확인하고, 자료구조 공부가 필요한 순간에는 여유가 있으면 공부하고, 없으면 pass!

4. 문제를 푸는데 집중한다.

5. 가능하다면 인텔리제이를 사용해 문제를 푼다. 그 후 프로그래머스/ 백준에 코드를 옮긴다.

6. 변수명도 신경쓴다. 자신이 쓴 코드를 다시 봤을 때 이해할 수 있도록

 


 

< 문제 푸는 팁 >

 1. 문제를 잘 읽고 최대한 단순하게 정리하기

2. 내가 바로바로 입출력을 찍어볼 수 있는 환경 만들어 두기 (인텔리제이 활용)

3. 복잡한 문제를 단순한 여러가지 문제로 나누기 - 하나씩 풀기

4. 어떻게든 구현하기

5. 다른 사람들의코드를 참고해보기 - 수학적으로 반복되는 구조는 그냥 외워두기 ( ex - 약수), 정규식을 참고해서 써보기

6. 더이상 문제가 풀리지 않는다면, 

    정규식, 자료구조, 알고리즘 공부가 필요한 시점이다! 

7. 취업 시 알고리즘의 마지노선은 dfs, dp가 마지노선이라고 봐도 된다.)

 

이번주 - 자바로 코드를 짜는 연습하는 기간이라고 생각하기.

 


 

< 인텔리제이 단축키 >

iter - for 향상문

sout - 시스템아웃프린트

psvm - mian 실행 클래스

'알고리즘' 카테고리의 다른 글

[36] 항해99 알고리즘 실전테스트  (0) 2022.11.24
[35] 두 개 뽑아서 더하기 JAVA  (1) 2022.11.23
[34] 같은 숫자는 싫어 JAVA  (0) 2022.11.23
[33] 최소직사각형 JAVA  (0) 2022.11.22
[32] 3진법 뒤집기 JAVA  (0) 2022.11.22

 

 

 

ArrayList.indexOf()
indexOf(Object o)는 인자로 객체를 받는다. 리스트의 앞쪽부터 인자와 동일한 객체가 있는지 찾으며, 존재한다면 그 인덱스를 리턴한다. 존재하지 않는다면 -1을 리턴한다.

 

 

다른 사람들의 풀이 

 

 

  • 이 분은 for문의 조건문에 .contain() 을 사용하셨다.
  • The contains() method of List interface in Java is used for checking if the specified element exists in the given list or not. 
  • 그리고 아래 새로운 배열에 값을 넣을때도 for each 문을 사용하여 list값을 [size++] 로 바로 넣어 주는 방식을 사용했다.

 

 

가장 많이 사용된 방식인데, HashSet이라는 클래스를 처음 접해서 뭔지 모르겠다.

알고리즘이 끝나면 차차 자료구조를 더 공부해야 할 것 같다.

특히 ArrayList, Hash Map, Stream 부분은 늦더라도 천천히 공부해야 할 것 같다.

 


※ 문자열 포함여부 확인 메소드

 

  • contains : 문자열에 검색하고자 하는 문자가 있는지 확인 : 포함 - true / 미포함 - false
  • indexOf : 문자열에서 검색하는 문자의 위치를 반환 : 포함 - 문자 위치 / 미포함 - ( -1 )
  • matches : 정규식을 이용하여 문자열을 검색한다, 특정 문자열을 검색할때 사용하기 보다는 한글, 숫자 등과 같이 해당 형태의 텍스트가 존재하는지 확인할때 사용하면 좋다 : 포함 - true / 미포함 - false

 

 

참고 블로그 : https://coding-factory.tistory.com/534

 

[Java] 문자열에 특정 문자 포함 / 검색하는 다양한 방법(indexOf, contains, matches)

프로그래밍을 하다보면 특정 문자열에서 원하는 문자가 포함되어 있는지 확인해야하는 소스를 넣을때가 종종 있습니다. 문자열을 찾는 방법은 String클래스의 indexOf(), contains(), matches()메소드를

coding-factory.tistory.com

 

'알고리즘' 카테고리의 다른 글

[36] 항해99 알고리즘 실전테스트  (0) 2022.11.24
알고리즘 잘 푸는 방법 !  (2) 2022.11.24
[34] 같은 숫자는 싫어 JAVA  (0) 2022.11.23
[33] 최소직사각형 JAVA  (0) 2022.11.22
[32] 3진법 뒤집기 JAVA  (0) 2022.11.22

 

 

다른 사람들의 풀이

 

 

 

 

  • for문을 돌리기 list 첫 인덱스 자리에 arr[0]을 넣어주었다.
  • 따라서 for문은 i = 1; 인덱스 첫자리 부터 배열 arr의 해당 수가 이 전과 다르면 list에 .add()로 추가를 해주면서 list를 만들어 준다.
  • 이 후 answer 이라는 배열을 list.size() 와 동일한 길이로 설정해주고,
  • 다시 for문을 돌려 list 안의 객체들을 하나씩 배열안으로 넣어준다.

 

 

  • 이 방법은 preNum이라는 변수에 10을 넣어주는데, 이는 arr이에 들어갈 객체의 범위가 1 =< arr[i] <= 9 이기 때문이다. 
  • 10이라는 숫자는 당연히 배열 arr의 객체와 다르므로 if문을 통해 tempList안에 arr 객체 숫자가 들어가고,
  • 바로 밑에 줄에서 다시 그 숫자를 preNum = num; 이라는 할당 연산자로 preNum에 값을 부여함으로써 tempList에 중복된 값이 들어가지 않도록 설계되었다.
  • 다음, answer이라는 배열을 tempList 길이만큼의 배열로 만들어주고, for문을 돌리면서 list 값을 배열안에 재배치 하였다.

'알고리즘' 카테고리의 다른 글

알고리즘 잘 푸는 방법 !  (2) 2022.11.24
[35] 두 개 뽑아서 더하기 JAVA  (1) 2022.11.23
[33] 최소직사각형 JAVA  (0) 2022.11.22
[32] 3진법 뒤집기 JAVA  (0) 2022.11.22
[31] 항해99 10기 알고리즘 모의고사 풀이  (0) 2022.11.22

 

 

주석에 오타가 있네요 ^^ 곱햇 -> 곱해

다른 사람들의 풀이

 

 

 

for each문, Math.max()와 Math.min()을 이용하여 간결하게 풀이하셨다.

왜 Math.max() 사용할 생각을 못했지 ...

+ Recent posts