되게 복잡하게 풀다가 예제문제들은 해결했는데 채점하면 계속 틀렸다고 나와서

결국 검색의 힘을 빌렸다 ,,

 

 

되게 심플하게 그냥 스택 하나만 사용해서

1부터 n까지의 수를 순서대로 스택에 push 한다.

 

arr은 입력받은 수열이 저장되어있다.

입력받은 수열로 만들기 위하여,

스택이 비어있지 않고 스택의 peek 가(맨 위) arr[count]와 일치한다면 pop !

count는 arr 인덱스로 pop이 됬을때 증가시켜주어 다음 arr 원소로 가기위한 연산들을 진행한다.

 

답을 보면 너무 간단한 문제였는데,

많은 복습이 필요한 것 같다,, 화이팅,,

 

 

 

 

 

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 빗물  (0) 2021.10.08
[BAEKJOON] 좌표 압축  (0) 2021.05.15
[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27

시간초과 때문에 애먹었다 ,,,

BufferedWriter로 해결하려고 했는데 왜 틀렸다고하는거즤 ?

내 문제겠즤만 흑흑

그래서 StringBuilder 사용했다. 이참에 이걸로 갈아탈까보다,,

 

그리고 이렇게 한번에 모아서 출력해도 되는 지 몰랐다,,

이상한 곳에서 헤맸군

쨌든 StringBuilder를 사용하자 ~

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 좌표 압축  (0) 2021.05.15
[BAEKJOON] 스택 수열  (0) 2020.12.28
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27
[BAEKJOON] 나이순 정렬  (0) 2020.12.27

백트래킹 문제로 DFS로 해결해야 한다고 한다. 

 

 

<1> 

 

arr은 뽑은 애들을 저장하는 배열이다.

예를 들어 m이 2라면 두 개를 뽑아햐니까 그 두개를 저장할 배열이 arr 

visited는 방문여부를 체크하여 중복없이 하기 위함이다.

n과 m, arr, visited는 main과 dfs 메소드 둘다 사용할 거기 때문에 public static으로 선언해주었다.

 

 

depth가 m과 같아지면 출력하는 형태이다. 즉, m이 2일때 2개 다 뽑으면 출력~

 

사실 완벽히 이해된게 아니라 ,, 일단 문제를 다양하게 풀어보며 이해해나가고자 한다,,

 

 

<2>

 

출력되는 게 다 오름차순이어야 한다고 한다.

 

 

그래서 dfs에서 depth가 m일때 출력하는 부분에 그냥 코드를 추가해주었다.
반복문을 돌려 앞이 뒤보다 크면 check를 1로 바꾼다. 즉, 오름차순인가를 확인하는거다.

아니면 1이기때문에, 1인 경우 return 해주어 출력을 안하고 종료시킨다.

 

 

<3>

 

같은 수를 여러번 골라도 된다고 하여서, 중복을 방지하기 위해 사용했던 visited 부분을 없애버렸다.

 

근데 시간초과가 계속 떠서 검색해보니 입출력 문제였다,,,,,

StringBuilder도 있다고 하는데, 더 익숙한 BufferedWriter를 사용하였다.

 

****** 시간초과 뜨면 BufferedWriter 사용할 것 !!

 

사실 알고리즘 수업시간에 모든 과제가 메모장 파일에 입출력해야해서

BufferedWriter와 BufferedReader를 사용하는 거였는데,,

맨날 전 과제 복붙해서 써서 익숙하지만 파바박 나오지 않는다. ㅠ_ㅠ 

 

 

 

<4>

 

3번에다가 2번 합쳐주면 된다,,

 

 

,,문제는 다 풀었지만 다시 봐야할 듯 싶다 ,, 백트래킹 마스터의 길로 아자 ~ 

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 스택 수열  (0) 2020.12.28
[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27
[BAEKJOON] 나이순 정렬  (0) 2020.12.27
[BAEKJOON] 단어 정렬  (0) 2020.12.26

처음엔 x 좌표 먼저 정렬한 후에 , y 좌표를 정렬할 생각이었다 ,,

정말 잘못된 생각이었다 ,,

문제를 똑바로 읽자,, 적힌대로 하쟈 ,,

 

 

괜히 저렇게 적혀있겠냐구요 ~~ 앞으로는 "~하면" 에 집중해서 보쟈,, 그대로 적자,,

 

 

else 부분이 x좌표가 같으면 에 해당하고, 그 경우에 y좌표를 정렬해주었다,,

 

**Integer.compare(o1,o2) -> 앞으로 숫자 비교할때는 이걸 사용해야겠다 ,,,

그러면 위의 코드처럼 세가지 경우가 아니라, 같은 경우와 그렇지 않은 경우만 해주면 된다,,!

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 나이순 정렬  (0) 2020.12.27
[BAEKJOON] 단어 정렬  (0) 2020.12.26
[BAEKJOON] 통계학  (0) 2020.12.26

 

이 문제를 처음엔 해시맵으로 생각했다,,

LinkedHashMap으로 해서 stream 사용해서 value로 정렬 하려고 했는데 아무리해도 틀렸다고 해서 엄청 헤맸다,,

결국엔 해시맵 버리고 스트링배열로 바꿨더니 바로되서 너무 허무했다.

 

나이하고 이름 저장해줄 스트링 배열~

 

첨에 해시맵으로 푸려고했을때 나이를 key 값으로 두는 바람에 key가 중복되어 처음 입력한 값이 계속 날라갔던 건데 그걸모르고 입출력 문젠줄 알고 토크나이저까지 와버렸다,, 

 

하지만 스트링 배열로 바꾼 후엔 코드길이 줄이려고 없앴다. 희희 ;_;

 

 

이제 Arrays.sort로 comparator 사용해서 해주었다.

나이로 정렬할거라 나이가 저장되어있는 0번째 인덱스 사용 ~

 

이렇게 출력해서 끝 ~

 

 

허무해 부에엥 ,, 안될땐 빨리 버리고 간단한 방법을 생각해보쟈,,

그리고 클래스로도 많이 풀던데 앞으로 문제풀 때는 클래스도 도전해봐야겠당 ~!

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27
[BAEKJOON] 단어 정렬  (0) 2020.12.26
[BAEKJOON] 통계학  (0) 2020.12.26

String 정렬,, 새롭다 갈길이 아득하다,, 후,,

 

이건 쓰고싶은 기능들 검색하니까 금방 해결했는데,, 검색 안하고 바로 풀고싶기 때무네,, ~

 

 

먼저 길이로 정렬해준다 ,,

 

Comparator 아직 익숙하지 않아서 쓸 때마다 검색한다,,

마스터 할거야,,

 

 

그리고 부분 정렬 해주었당 ~

 

근데 자꾸 마지막 부분 처리를 헷갈린다 머리를 쓰쟈 ,,

 

이거 정말 외울거다 ,, 

일단 역시 stream을 사용하였다,, distinct()가 중복제거 역할 ! 그리고 forEach(System.out::println)을 통해 바로 출력 ~~

 

*********복습하쟈아아아앙

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27
[BAEKJOON] 나이순 정렬  (0) 2020.12.27
[BAEKJOON] 통계학  (0) 2020.12.26

 

산술평균, 중앙값, 최빈값, 범위(최댓값과 최솟값 차이) 를 구하는 문제인데

최빈값에서 너무 헤매서 ,, 복습하고자 글 쓸거다 ,,!

 

우선 해시맵으로 key, value로 저장하였다. 즉 value가 빈도수가 된당~

그리고 countMax로 가장 큰 빈도수 값을 저장해주었다.

 

countMax를 value로 가지고 있는 key 들을 어레이리스트 a 에 저장하였다.

 

**keySet()이 사실 뒤늦게 생각났다,, 더많이 사용하다보면 익숙해질거라 믿는다 ,,,

 

countNumber 가 오늘의 골칫덩어리,,최빈값이다.

기본값은 a의 첫번째원소 ~ a 원소가 하나만 있을 수도 있기때문에 ~~(최소 1개)

그거보다 큰 애들은 정렬을 통해 1번째 원소를 가져온다.

 

나머지 애들은 다 stream을 사용하였다,, 

사실 이전까진 직접 계산하였었는데 이렇게 너무나도 간단한게 너무 많아서 

앞으론 이거다,, 다 머리에 저장할거야,, ~~~~~~~

 

** 헷갈렸던건 반올림,, Math.round 가 반올림,,

ex) 둘째자리까지 하고싶으면 Math.round(pie*100)/100.0);  또는 String.format("%2f",pie)) 의 방법도 있다,,

올림은 Math.ceil, 버림은 Math.floor() ,,,,,

 

할때마다 검색하는데 이젠 외울때야,,외우자,,

 

 

 

결과 뚜둥

'NOTE > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 스택  (0) 2020.12.27
[BAEKJOON] N과 M(1), (2), (3), (4)  (0) 2020.12.27
[BAEKJOON] 좌표 정렬하기  (0) 2020.12.27
[BAEKJOON] 나이순 정렬  (0) 2020.12.27
[BAEKJOON] 단어 정렬  (0) 2020.12.26

+ Recent posts