전체 글 333

앳코더90 - 010 - Score Sum Queries(★2)

https://atcoder.jp/contests/typical90/tasks/typical90_j 010 - Score Sum Queries(★2) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 구글 번역을 한번 돌리고 읽어보니 별 2개짜리라 그런가 풀이가 바로 보였다. 1~N번 학생이 1번수업 또는 2번수업에서 몇점을 맞았는지가 나온다. 쿼리가 주어질때 A ~ B번 학생들이 1번수업 2번수업의 점수 총합을 각각 구하는것이다. 바로 생각나는것이? prefix Sum이다. 처음에 전처리를 해놓고 쿼리마다 출력하면 된다...

백엔드 오답노트 2 Test란?

백엔드에서 진행하는 테스트는 종류가 많다. 유닛테스트, 통합테스트등 하나씩 알아가 보자. 단위테스트란? - 외부에 의존성이 없는 소프트웨어 단위 테스트 BDD - Given - When - Then 통합테스트란? - 둘 이상의 시스템요소를 통합한 테스트 Mock 테스트와 Stub 테스트의 차이는 무엇일까? 우선 각 용어를 알아보자. Mock : 예상되는 기대값, 미리 프로그래밍 객체 Stub : 테스트 중에 만들어진 호출에 미리 준비된 답변 음... 이것만 봐서는 잘 모르겠다. 큰 차이점만 본다면 Mock 은 Behavior verification 행위검증 : 메소드의 리턴값으로 판단할 수 없는경우, 특정 동작을 잘 수행했는지 Stub 는 State verification 상태검증 : 객체의 상태를 확인..

앳코더90 - 009 - Three Point Angle(★6)

https://atcoder.jp/contests/typical90/tasks/typical90_i 009 - Three Point Angle(★6) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제는 간단하다. 푸는 방법을 모를뿐 좌표가 N개 주어진다. 이중 3개를 골라서 3개의 각이 가장 크게하라. 기하학 문제고 가장 쉽게 생각나는 방법은 브루트포스로 3개를 고르는것이다. 하지만 이는 NC3으로 O(N^3) 으로 시간초과가 난다. 정해역시 모르겠으니 에디토리얼을 참고하며 이 방법을 구현해보자. #define _CR..

앳코더90 - 008 - AtCounter(★4)

https://atcoder.jp/contests/typical90/tasks/typical90_h 008 - AtCounter(★4) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제를 읽어보자마자 이건 dp 라는 생각이들었다. 100000 크기의 문자열이 주어졌을때 이 안에 atcoder가 얼마나 들어있는지 개수를 세라는것이다. 핵심로직은 바로 떠올랐지만 구현하는데 어려움을 겪었다. cache[i][j] i를 index j를 atcoder의 index로 잡고 저장하는값은 개수이다. 핵심은 a가 나왔을때 이를 다음 ..

기획 2 무엇을 만들어볼까?

솔브닥을 보면 알고리즘 문제를 푸는것 처럼 게임 티어 올리듯 즐길 수 있게 해놓은 시스템이 정말 좋았던것 같다. 그리고 비슷한 프로그래밍 대회 사이트인 코드포스나 앳코더등을 링크하여 이사람은 이렇게 잘하는 사람이구나 이러한 문제들을 풀었구나를 보여줄 수 있었던것같다. 이를 진짜 게임을 대상으로 할 수 있을까? 유튜브만 봐도 세상 정말 이상한 게이머들이 많다. 이러한 사람들을 profile화 해서 보여주는 식으로 할 수 있지 않을까..? 뭐 사실 미니 프로젝트라서 깊이있게 생각해보진 않아서 배운것을 활용한다. 라는 느낌으로 진행해보려고한다. 결론 : 게임스펙 정리 사이트 다음 내용 ERD그려보기

앳코더90 - 007 - CP Classes(★3)

https://atcoder.jp/contests/typical90/tasks/typical90_g 007 - CP Classes(★3) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp N개의 A값을 가진 class가 나온다. B점수가 class를 들어갈때 오차가 최소가 되게하는 불만도( abs(A-B))를 구하라. 문제 자체가 직관적이여서 풀이를 떠오르는데는 어렵지 않았는데 구현하는데 어려움을 겪었다. Aclass를 sorting하고 N의 크기가 300000이기 때문에 이분탐색을 이용해서 가장 오차의값이 적은 class..

앳코더90 - 006 - Smallest Subsequence(★5)

https://atcoder.jp/contests/typical90/tasks/typical90_f 006 - Smallest Subsequence(★5) AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 문제는 다음과 같다. 전체길이가 N인 문자열 S의 길이 K인 부분 문자열중 가장 빠른 사전순 문자열을 출력해라. atcoder의경우 acd 이다. 이 문제를 봤을 때 dp 느낌으로 접근해야될것 같았고 K = 4 zzzz 의 경우에는 모두를 선택해야되지만 앞에서부터 봤을때 index를 넘기면서 확인하는것이 불가능하다 판단해..

기획 1 스프링 무슨 버전을 써야할까?

카테캠 2단계를 수료하고 https://b1ackhand.tistory.com/218 큰 틀을 알았으니 하나하나 다시 제대로 알아보자 라는 마음으로 미니 프로젝트를 기획하려 한다. 하지만 벌써 시작하기 앞서서 스프링은 어떤 버전을 어떻게 골라야할까? 라는 의문이 시작되었고 가까운 친구한테 물어보게 되었다. "종합적으로 라이브러리가 버전에 따라 다른 상태를보고 더 필요한걸 골라 호환되는 버전으로 하라." https://spring.io/projects/spring-boot#learn Spring Boot spring.io 하지만 난그런거 잘 모르기 때문에 카테캠에서 사용한 버전을 사용해 보도록 하자. 이대로 해보도록 해야겠다.

카테캠 백엔드 2단계 리뷰

23.06.26 ~ 23.08.04 6주차 과정 카테캠 2단계는 클론코딩과정이다. 카카오 쇼핑 어플리케이션의 주어진 내용들을 과제를 따라 순차적으로 구현하자. 월~금 매일 10시 접속 월요일은 출석체크및 공지만하고 2시~6시 실시간 강의 나머지 요일은 팀원들과 스크럼이후 각자 코딩 금요일 과제 제출 중간중간에 저녁에 Live 특강 이런식으로 진행된다. 큰 주제들은 다음과 같다. 1주차 화면 분석 및 테이블 설계 2주차 스프링 세큐리티, JWT, reflection, 톰캣, 쿼리문작성법 등 3주차 DTO, JPA 4주차 DTO 유효성검사, 단위테스트 5주차 AOP, 통합테스트 6주차 배포 얼핏 보기만해도 내용이 많다. 개인적으로는 어느정도 이해한 부분은 있었지만 완벽히 이해했다고는 생각하기 어렵다. 클론코..