https://www.acmicpc.net/problem/1700 단순히 문제를 풀다가정답 코드를 보며 풀었음에도 풀며 들었던 작은 의문들과 어떤 정답을 스스로 알아내었는지 적어두려 합니다. {1. int remove = arrList.get(arrList.size()-1); 이 코드 부분.//정답 코드써주신분을 뭐라하는건 절대 아닙니다.! 좋은글 너무나 감사합니다.이 코드에 가장 마지막에 사용될 콘센트를 제거한다고 주석이 있었는데123 321로 들어오면arrlist가 123이 되고, 마지막 콘센트가 1이 아닌데..?의문을 가지고당장 빠르게 사용될 n개의 갯수내에서 가장 마지막콘센트 제거가 가장 효율적임을 알아내고나니,그제서야 왜 효율적인 방법인지를 납득했습니다. ★배운점: 확실히 직접 써봐야, 작..
서론학교수업에서 코딩테스트를 대비하는 수업이 있습니다.거기서 수업시간에"정수N개가 입력되고, 그 수열중 몇개를 골라서합이 M이 되는 부분수열을 만들수 있는가" 를 어떻게 풀수있을까?고민만 시키고 수업은 끝났습니다.저는 나름 알고리즘에 이제 자신이 있었는데전혀 풀 방법이 안떠오름에 충격을 먹었습니다재귀함수로 2에n승으로 하는건가..?하면서 말이죠바로 이런문제를 검색했는데알고리즘 사이트엔 없다고 뜨더군요포기할수 없는 저는 바로 gpt에 세세하게 물어보고 코드를 보고 이해하고안보고 적을수 있게 공부를 했습니다할것도 많은데 github에 잔디도 못채우고..이걸 해야하나 싶었지만제가 못하는걸 공부하는 열정이성공의 길이라고 믿기에그냥 했습니다 ㅎㅎ하는것만 해선 아무 발전이 없더라구요원래는 가능한지 여부만 묻는 문제..
문제를 풀며 배운점1.공백없는 문자열 하나씩 쓸땐 stingTokenizer말고, str로 받아서 charAt(i)로 쓴다.2.가독성, 확장성의 의미가 꽤 크다.객체 내의 변수쯤은 비어도 큰 메모리낭비가 아니기에,가독성을 이유로 Marble객체를 red, blue로 나누어서 2개를 사용한다. 같은이유로 1줄의 else if도 { } 를 사용하는 경우가 많다.
이번 문제를 풀며 지금 떠오르는 배운점들1.배열, 리스트, 큐 등은 지역변수로 쓰는게 좋다왜? -> 전역변수로 쓰면, 2번째 테스트케이스등을 할때, 남은 데이터로 오류가 날수있다. 2.arrayList에서 뒤의 인덱스를 사용하기위해선, 안쓰더라도 앞에 빈껍데기 객체라도 넣어놔야한다.why?) -> 배열과 다르게 앞에서부터 채워지는 것으로 보임 3. 전역변수, 지역변수를 적절히 숫자를 나눠 사용해준다.왜?) -> 매개변수로 너무 많은 변수가 있으면 가독성이 떨어지므로 4. 위상정렬을 써서 문제를 푸는법. 알바하며 풀은 흔적코드import java.util.*;import java.io.*; class Main { static int n; // 노드 갯수 static int k; //..
https://www.acmicpc.net/problem/16234//코드는 맨 아래에 있습니다 -느낀점안익숙한 BFS문제에제가 싫어하는 편인 설명이 긴 문제였습니다 하지만 싫어하고 못하는걸 풀어야함을 알기에 꾹 참고 풀었더니,그만큼 성취감이 큰듯 합니다 골드4인데도 꽤 어려웠습니다.. 그리고 이번에 처음으로 편의점 야간 알바를하면서 처음부터 끝까지 푼 문제입니다//손님 없이 쉬는시간에 했습니다! 이런건 집가서 해야지.. 하고 미루던저 자신을 깨부셔서 그런지너무 즐거웠습니다//아무래도 폰 타자로 코딩은 힘들더라구요..// { ( , . 이런 특수문자들.. ㅠㅜ 이런식으로 일을 한다는 핑계로 도망치지않고, 자기개발을 포기하지 않을 저를 상상하면 참 즐거워집니다 풀어야할 문제, 풀어온 문제가 ..
https://www.acmicpc.net/problem/14002 풀이1.이중for문으로 1~n번째까지의 요소들까지의 증가수열의 갯수를 알아내기2. stack을 이용하여 앞서 기록한 arr[](i에 맞춰서 넣어진 수열 요소들)과 dp[](i 숫자에 맞춰진 증가수열의 숫자)를 이용해 역으로 push한것을 pop으로 빼내면서 증가수열의 요소를 복원하는 식입니다. 정답코드package practicePc;import java.io.*;import java.util.Stack;import java.util.StringTokenizer;public class Main { private static final BufferedReader br = new BufferedReader(new InputStreamRead..