본문 바로가기

전체 글59

ide 못 쓰는 코테, 문제 풀 때 쓰는 일련의 흐름 | 코테 준비 개략적으로 내가 읽은 블로그 글 코딩 테스트 준비하기1. 언어 선택하기 가장 편한 언어, 직군 관련 언어, 서브 언어로 나눠서 나에게 어떤게 더 맞는지 하나씩 따져보기 ex) 1. 가장 편한 언어? : kotlin, python 2. 직군 관련 언어? : kotlin 3. 서브 언어? : pythojslee-tech.tistory.com 지금 코테 문제 풀 때 쓰는 일련의 흐름문제 풀기 전에 접근 방법을 생각하라고 한다. => 수도 코드처럼 자연어로 틀 잡고 하면 될 듯하다.Main 클래스에 다 풀지 마라. 함수별로 나눠서 풀어라디버깅은 구식이지만 프린트문을 활용하면 된다.준비법ide에 익숙해지면 자동완성 기능에 의존하게 된다. 그러니 온라인 플랫폼에서 푸는 연습 많이 해라반년 정도 투자한다고 생각하면 편하다 (하.. 2024. 5. 16.
[Do it 코테 자바편] 디버깅 영상에선 디버깅할 때, ide를 활용하는 걸 전제로 말하고 있다.중단점 여러 개 찍고ide 디버깅 기능으로 한 줄씩 실행해보거나, 다음 중단점까지 실행 가능하며변숫값도 추적 가능하며내가 원하는 수식 입력해서 흐름을 파악 가능하다.그러나 코테에선 ide를 막는 경우가 많다고 한다. 프로젝트 할 게 아니라 알고리즘과 자료구조만 보는데, 필요하냐는 거란 논리인가. 흔하게 일어나는 오류 4가지자료형 범위 오류: (제일 많이 나에게 시련을 준...) 그냥 int 대신 long형을 써라.오버플로우로 고민했던 적이 지금도 기억에 남는다. 처음엔 굳이 불필요한 메모리를 쓰면 뭔가 멋이 안 난다. 그리고 면접관이 나에게 불필요하게 int 써도 되는데 long을 쓰냐고 묻는 상상을 하니 더더욱 수의 범위에 알맞게 자료형도.. 2024. 5. 16.
자바로 코딩테스트 볼 때 일단 무지성으로 박고 시작하는 것 코딩 테스트를 시작할 때 자바로 기본 템플릿을 준비해두면 편리합니다. 아래는 자바로 코딩 테스트를 시작할 때 기본적으로 사용할 수 있는 템플릿 코드입니다:import java.util.*; import java.io.*;public class Main { public static void main(String[] args) throws IOException { // 여기에 코드를 작성하세요 } }이 템플릿을 사용하면 입출력 관련 예외 처리가 이미 포함되어 있어, 코딩 테스트에 집중할 수 있습니다.문제 풀면서 필요한 대부분의 메소드가 들어간 패키지도 다 import했다. 2024. 5. 16.
[Do it 코테 자바편] 어떤 알고리즘으로 풀어야 할까? 시간 복잡도: 그냥 빅-오, 즉 최악일 때의 연산 횟수만 기억하면 됨 -> 어떠한 케이스라도 통과 못하면 안 되기 때문어떤 코드의 시간 복잡도 파악상수는 무시한다. 즉 for문이 한 개 있으면 복잡도가 n이라 치자. for문이 3개 있어도 컴퓨터 입장에선 n이나 3n이나 도토리 키재기다. 그러니 무시한다.가장 많이 중첩된 반복문 수행 횟수가 기준이 된다: 즉 for문이 1억개 있어도, 이중 for문 하나를 못 이긴다는 소리다. 즉 복잡도는 n의 제곱이지, n의 제곱 + 1억*n이 아니란 소리다.연산 횟수: 시간 복잡도 n에 데이터 크기 대입하면 됨시간복잡도로 1. 문제 제한 시간에 맞는 알고리즘 선택할 수 있고 2. 내가 짜는 로직에서 복잡도 효율이 안 좋아 불통하는 부분을 찾아낼 수 있다 빠른 거부터.. 2024. 5. 16.
군대에서 오랜만에 쓰는 개발 블로그 | 공부 틀 잡기 입대 전까지 난 꾸준히 코테 공부나 여러 개발 정보 조사하며 지냈다.그래서 군대에서는 개발 환경이 열악하여, 이 기회에 안 해본 것들을 다양하게 찍먹했다.온라인 사업, 투자, 자기계발 서적 탐독 등 말이다.이제 다시 뱅뱅 돌아 개발 쪽에 주의를 기울이게 됐다. 다양한 활동을 찍먹 후 느낀 소감은, 난 개발에 내 성향이 맞다는 점이다.우직하게 문제 붙들고 프로젝트 만들거나, 코테 문제 생각하는 게 더 마음 편하다.비록 개발이나 코테를 잘하진 못한다.그러나 전자책, 블로그나 인스타 수익화, 부업이나 앱테크의 경우 내 성향과 안 맞는다. 결론은 지금 개발 공부를 다시 시작하려 한다.기존에 내가 조사한 개발 정보와 달라진 점은 없는지 조사했다.조사한 내용은 다음과 같다. 목표는 개발자 현황, 상황, 취업 전망,.. 2024. 5. 16.
[Java] 문제 005(백준 10986번) 이 문제는 합 배열과 부분 합을 이용해서 푸는 문제다.이에 대해 자세히 모르면 구간 합 구하기4를 참고하자.문제나머지 합(Baekjoon: 10986번)설명주의해야 할 부분시간 제한 생각 없이, 구현만 하다 보면, 시간 초과로 틀리는 경우가 종종 있다.시간 초과 코드 보기이중 for문을 이용하니, 시간 복잡도가 O(n^2)이 되어 시간 초과가 되었다.나머지 연산 분배법칙시간 복잡도를 줄이기 위해 "모듈로 연산"을 적용해야 한다.(A + B) % C = ((A % C) + (B % C)) % C위 공식이 나머지 연산 분배법칙이다.이에 대한 증명은 이 페이지를 참고하면 좋을 것 같다.위 공식은 어디에 적용해야 하는 걸까?일단 i~j의 구간 합은 S[j]-S[i-1]로 표현 가능하다.그리고 문제 목표는 구간 .. 2024. 2. 14.
[Java] 문제 004(백준 11660번) 문제구간 합 구하기 5(Baekjoon: 11660번)  풀이import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception { // n, m 입력받기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nex.. 2024. 2. 14.
[Java] 문제 003(백준 11659번) 문제 구간 합 구하기 4(Baekjoon: 11659번) 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int suNo = Integer.parseI.. 2024. 2. 14.