전체 글 (30) 썸네일형 리스트형 [백준/1259번] 팰린드롬 수 - JAVA 예상 문제 풀이 시간복잡도를 어느정도 줄이기만 하면 되는 구현문제라 추측했다.이후 이 문제 풀이의 제약 조건을 생각해보고 다음과 같이 정리했다.길이가 짝수인 경우에는 / 2길이가 홀수인 경우에는 / 2 + 1길이가 홀수인 경우, 중앙값은 계산하지 않음.길이가 한자릿수인 값은 무조건 팰린드롬 수 문제 풀이 로직 순서는 다음과 같다.종료/스킵 조건을 상단에 배치종료 조건에 해당하지 않을 경우 center값을 기준으로 length의 반만 탐색하며 비교를 진행만약 비교에서 틀릴 경우 answer에 no를 저장이후 answer의 값을 print 왜 여기선 짝수일 경우 - 1을 하냐고 물어볼 수 있는데String의 length는 List와 같기에 index의 최대값을 가져오는 것이 아니다.그래서 오히려 짝수를 -1.. [백준/24263번] 알고리즘 수업 - 알고리즘의 수행 시간 2 - JAVA 예상 문제 풀이 알고리즘의 수행 시간 1이 제약조건같은 부분에서 낚시성이 짙었기에2도 낚시성이 있을거라 생각하고 임했다.물론 결과는 낚시가 맞았다. 문제 풀이 시행횟수는 입력값이며, 차수는 무조건 1이다.로직 과정에서 차수가 발생하지 않는 일차 다항식인 1+2+3+4 로만 진행된다.그렇기에, 차수는 무조건 1이다. 당연하지만 예외조건인 차수 3 이상에는 결코 도달할 수 없다. 풀이 후기 백준은 가끔 이런 낚시 문제가 있는 것 같다.이건 코딩테스트가 아닌 수학적 추론 테스트라고 생각한다.어쩌면 훌륭한 프로그래머는 수학적 지식 또한 필요하다는 교훈을 주기 위해서일지도. [백준/24262번] 알고리즘 수업 - 알고리즘의 수행 시간 1 - JAVA 예상 문제 풀이 제약조건을 확인하고 차수가 3보다 크면 4를 출력해야한다는 것을 기억해뒀다.그런데, 뭔가 이상한 것이다. N은 주어지는데 시행횟수는 주어지지 않는다.그냥 무조건 한번만 실행되는 문제인데 차수를 구한다? 어불성설이다.즉, 낚시 문제인데 문제가 이상하다고 느끼고 헤메게 되었다. 문제 풀이 낚시 문제에 어울리는 정답이다.그 무슨 짓을 해도 시행횟수는 1로 고정이며, 그로 인해 차수는 0으로 고정이다.예외 조건도 필요가 없다. 차수는 3이상 나올 수가 없기 때문이다. 풀이 후기 " 시행횟수는 왜 정보가 없어? 뭔가 잘못된거 아니야? " 라고 생각했지만 시간만 와장창 버리게 될 수 있다.정직하게 한번만 도는 낚시 문제일줄은.. [백준/15465번] Milk Measurement - JAVA 예상 문제 풀이 단순히 구현하는 문제라고 느껴졌다.다른 점이라면 구현뿐만 아니라, 정렬해서 최대한 빠르게 다른 것을 체크 한 후 반영하는 것이다. 문제 풀이 이후 메인 로직은 이렇게 전개되었다. 1. 값을 초기화하고 List를 생성2. day 값에 따라서 정렬(오름차순)3. 모든 저장된 변동값을 day 순으로 읽어와 반영하고 check 메서드 실행4. 다 돌았다면 print 풀이 후기 백준에서는 드물게 정직한 문제였다.구현의 느낌이 강하게 드는 문제였고, 정렬을 제외하면 사실상 구현만 잘 해내면 되는 문제였다.시간 복잡도도 상당히 널널하게 준 느낌. 첫 풀이에 풀었지만 구현 문제는 어떻게 하면 더 나은 로직을 가지게 될지 고민하게 되다보니시간은 30분정도로 생각보다 오래 걸렸다. [자료구조/TREE] 1. 트리란? 트리란?우리가 프로그래밍을 한다면 빠질 수 없는 개념이다.자료구조 중 계층적 데이터를 표현하는데 자주 사용되며 비선형 구조로 이루어져 있다.우리는 이 트리 개념을 잘 몰라도 알게 모르게 써오게 되어있는데데이터베이스에서 자주 사용되는 것이 B-Tree 구조이며 힙(heep)은 완전 이진트리 기반이다.이제 이 트리에 대해 상세히 알아보자 1. 트리의 정의 트리는 큰 분류로 노드(Node)와 간선(Edge)으로 이루어져 있다.트리는 계층적 구조이며 비선형 그래프이기에 순환이 없는 연결 그래프다.하나의 시작점(Root Node)를 시작으로 하위 노드로 뻗어나가는 형태를 가진다모든 노드로 가는 경로는 유일하다. 즉, 하나의 길 밖에 없다.노드가 n일때 간선 수는 n-1로 구할 수 있다. 2. 트리의 구조와 .. [React/Next.js] nodemailer 사용법 nodemailer노드 메일러는 Next.js 프레임워크 환경에서 백엔드 서버의 도움 없이도 자체적으로 API route를 제공해 메일 로직을 프론트엔드 내에서 처리 가능하도록 해준다. 1. 라이브러리 설치npm install nodemailernpm install -D @types/nodemailer // 타입 스크립트 사용시에 추가 2. 원하는 mail API와 연동 여기선 gmail과 연동하도록 하겠다.무료이기도 하고 쉬워보였...기 때문. 알고보니 어려웠다. Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.comGoogle Cloude 콘솔 로 진입 API 및 서비스 - OAuth 동의 화면으로 들어가 정보 등록 API 및 서비스 - AP.. [Flutter] dio 라이브러리 사용법 dio | Dart packageA powerful HTTP networking package, supports Interceptors, Aborting and canceling a request, Custom adapters, Transformers, etc.pub.dev dio 라이브러리이제는 없어서는 안될 라이브러리다.직렬화 속도도 네이티브보다 빠르며, 훨씬 간단한 문법을 사용한다가히 Flutter 계의 Axios라 할 수 있겠다.dio 사용법 정말 간단하기 짝이 없다. 근데 빠르기까지 하다니 안 쓸 이유가 없다.당연하지만 Flutter 앱에서는 통신이 메인이 될 것이기에create/dispose의 오버헤드를 줄이기 위해 싱글톤 패턴으로 작성해준다. dio 커스텀 클래스 설정 싱글톤 인스턴스로 만.. [REACT18/GSAP] GSAP + ScrollTrigger 사용법 GSAP/Scroll Triigergsap는 다양한 화면 이벤트를 만들어 낼 수 있는 라이브러리다.그 중 ScrollTrigger는 스크롤을 통한 이벤트를 발생시킬 수 있는데요즘은 이런 식으로 이벤트를 통한 동적인 웹페이지를 만드는 것이 유행인 것 같다. 사용 라이브러리필수적인 라이브러리는 다음과 같다. useEffect를 통해 gsap와 ScrollTrigger를 연동gsap를 통한 이벤트 생성ScrollTriiger를 통해 이벤트 조건과 타겟 클래스를 지정하는 것이다. ScrollTrigger 사용법해설도 적어놓을 거지만 간단하게 보고 가자. 1. to 이벤트대상 클래스는 barcodeVideo이며 기준이 되어줄 클래스는 firstVideoBox이다. 시작 지점은 firstVideoBox의 .. 이전 1 2 3 4 다음