전체 글

알고리즘

[알고리즘] 오답노트

한번이라도 까먹은 개념을 다시 적는 글입니다 !문자 연산은 'a'처럼ex) 10빼기문자a -> 10 - 'a'비트마스크 연산자or -> |and -> &자신과 비교or -> |= //자주씀//bfs비트마스크 and가 존재할때(? & ?) != 0 형식을 자주씀 //0010처럼 같이켜진것만 반환-중요x---------------------------------순회만 할거면 arraylist가 구현체중에 best

알고리즘

[알고리즘] BFS 오답노트

이 글은 제가 bfs를 하며 한번이라도 까먹은 개념을 정리하는 글 입니다메인에서 값 받는 형식-> main{ br, 행,열, tc 받기 값을 받을 자료형준비+ 전역변수 초기화 for(i { map등 입력받기//돈 먹는 최대갯수 문제였습니다메인에서 map받을때 첫 한번의 작업(cur x,y에 해당)(key 받고, 문좌표 받는등) 후bfs에서 new x,y(다음 좌표)에 해당하는 같은행동 처리 반복 후(key받고, 문 좌표 받는등) q.add로 new x 를 넘김메인에서 for문 2개를 씀.첫 for는 입력받기(map채우기)(여기서bfs 안씀(맵 다 받아야 해서)(문 체크안함(뒤 입력에서 열쇠 나올수 있음))두번째 for는 문 체크하며 bfs호출(for 반복만큼 호출)(bfs호출대신..

알고리즘

[알고리즘 - java] 1700 멀티탭 스케줄링

https://www.acmicpc.net/problem/1700 단순히 문제를 풀다가정답 코드를 보며 풀었음에도 풀며 들었던 작은 의문들과 어떤 정답을 스스로 알아내었는지 적어두려 합니다. {1. int remove = arrList.get(arrList.size()-1); 이 코드 부분.//정답 코드써주신분을 뭐라하는건 절대 아닙니다.! 좋은글 너무나 감사합니다.이 코드에 가장 마지막에 사용될 콘센트를 제거한다고 주석이 있었는데123 321로 들어오면arrlist가 123이 되고, 마지막 콘센트가 1이 아닌데..?의문을 가지고당장 빠르게 사용될 n개의 갯수내에서 가장 마지막콘센트 제거가 가장 효율적임을 알아내고나니,그제서야 왜 효율적인 방법인지를 납득했습니다. ★배운점: 확실히 직접 써봐야, 작..

알고리즘

[알고리즘 - java] 1194 달이 차오른다, 가자

https://www.acmicpc.net/problem/1194 -중요포인트. 쉬프트연산.비트 마스킹. &과 | 사용법-노트메모(깨달음).bfs의 전체적 공통 흐름.재귀는 dfs, bfs는 q와 for문을 통해. 그 이유로 bfs가됨.(for문 4방향을 본 후에야 다음count연산이 q로 진행되기에)-참고 꿀팁2회독부터 기억안나는건 메모하자-참고.야간 편의점 알바중, 손님 없는 남는시간에 푼 것 입니다.공략보단, 기록의 느낌입니다.팁으론 도움될것입니다

알고리즘

[알고리즘 - dp] 동전 교환 문제

배운점1.배열 -인덱스에 접근을 막기위해 if를 씀.2.greedy, dp 둘다 알자.서론학교 수업에서 동전문제가 나왔습니다.당연히 greedy겠구나 하고 풀고별 생각 없었는데1, 3, 4원일때 greedy가 실패함을 보게 되었습니다.충격을 받고, dp 동전문제를 파보았습니다.//참고n을 이루는 최소 동전 갯수 문제입니다.본론재귀도 있지만, 보통 안쓰는 분위기니1.for문과2.사용한 최적 동전 수열 구하기3. 경우의 수 모든 수열 구하기이 3개가 메인인듯 보였고, 이를 조금 써보자 합니다.풀 코딩은 손코딩으로 실컷 했기에 요점만 쓰겠습니다.1 요점.for 1~ N i = MAX for (coin : coins) if( i - coin >= 0) min(dp[i], dp[i-coin]..

알고리즘

[알고리즘-java] 부분수열 (문제는 없음)

서론학교수업에서 코딩테스트를 대비하는 수업이 있습니다.거기서 수업시간에"정수N개가 입력되고, 그 수열중 몇개를 골라서합이 M이 되는 부분수열을 만들수 있는가" 를 어떻게 풀수있을까?고민만 시키고 수업은 끝났습니다.저는 나름 알고리즘에 이제 자신이 있었는데전혀 풀 방법이 안떠오름에 충격을 먹었습니다재귀함수로 2에n승으로 하는건가..?하면서 말이죠바로 이런문제를 검색했는데알고리즘 사이트엔 없다고 뜨더군요포기할수 없는 저는 바로 gpt에 세세하게 물어보고 코드를 보고 이해하고안보고 적을수 있게 공부를 했습니다할것도 많은데 github에 잔디도 못채우고..이걸 해야하나 싶었지만제가 못하는걸 공부하는 열정이성공의 길이라고 믿기에그냥 했습니다 ㅎㅎ하는것만 해선 아무 발전이 없더라구요원래는 가능한지 여부만 묻는 문제..

카테고리 없음

[알고리즘-java] 13460 구슬탈출2 (작성중)

문제를 풀며 배운점1.공백없는 문자열 하나씩 쓸땐 stingTokenizer말고, str로 받아서 charAt(i)로 쓴다.2.가독성, 확장성의 의미가 꽤 크다.객체 내의 변수쯤은 비어도 큰 메모리낭비가 아니기에,가독성을 이유로 Marble객체를 red, blue로 나누어서 2개를 사용한다. 같은이유로 1줄의 else if도 { } 를 사용하는 경우가 많다.

카테고리 없음

[알고리즘-java] 1005 ACM Craft

이번 문제를 풀며 지금 떠오르는 배운점들1.배열, 리스트, 큐 등은 지역변수로 쓰는게 좋다왜? -> 전역변수로 쓰면, 2번째 테스트케이스등을 할때, 남은 데이터로 오류가 날수있다. 2.arrayList에서 뒤의 인덱스를 사용하기위해선, 안쓰더라도 앞에 빈껍데기 객체라도 넣어놔야한다.why?) -> 배열과 다르게 앞에서부터 채워지는 것으로 보임 3. 전역변수, 지역변수를 적절히 숫자를 나눠 사용해준다.왜?) -> 매개변수로 너무 많은 변수가 있으면 가독성이 떨어지므로 4. 위상정렬을 써서 문제를 푸는법.   알바하며 풀은 흔적코드import java.util.*;import java.io.*; class Main { static int n; // 노드 갯수 static int k; //..

알고리즘

[알고리즘-java] 1339 단어 수학

이것도 풀이를 보고, 제 방식대로 풀었는데 백준에선 오류가 납니다. 백준 입력예시 4개 다 입력해도 정상값이 eclipse에선 출력이 되고 코드 안보고 짜면서 바뀐점은 1.전역에서 int배열의 크기까지 선언.2. 전역으로 선언.3. 9,8,7등 값 할당을 타 함수로 구현. 밑의 저의 코드는 백준으론 오류입니다. 누군가 보시고 왜 틀렸는지 아시면 말씀해주시면 감사하겠습니다! package practicePc;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;import java.util.Arrays;public class Main { //전역변수 static int result; static in..

알고리즘

[알고리즘-java] 12100 2048 (Easy)

https://www.acmicpc.net/problem/12100 느낀점1.배운점.제가 원래 정답 코드를 외우고 받아쓰는 방식을 싫어합니다.코드를 이해하고, 왜 이 순서인지, 왜 이런 방법으로 구현하는것인지 하나하나 알아가고 이해하는 재미로 공부하기 때문입니다. (배운점)이 방식을 통해 이 문제를 풀며 배운건며칠동안 풀었기에 기억나는 하나만 적어보자면--전역변수를 선언하고 재귀함수에서 크기선언을 하면 -> 매 재귀마다 덮어쓰기가 됨.재귀함수에서 전역변수를 선언,배열크기할당까지 하면 -> 매 재귀마다 이름은 같은 다른 변수가 만들어짐--이걸 배우게 되어 좋은 경험이 된듯 합니다. 함수 내 에서만 쓰는 변수를 전역변수로 쓰면,메모리낭비나, 가시성의 문제정도만 있을까 싶었는데새로운 문제를 알게되어 신선했습니..

lis017
리스