https://www.acmicpc.net/problem/2529두 종류의 부등호 기호 ''가 k개 나열된 순서열 A가 존재하고, 부등호 기호 앞 뒤에 서로 다른 한 자릿수 숫자(0~9)를 넣어 모든 부등호 관계를 만족시키는 (k+1)자리의 정수 중 최댓값과 최솟값을 찾는 문제다. 문제 탐색하기- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정ex. 가능한 시간 복잡도, 알고리즘 선택입출력 제한2 ≤ k ≤ 9첫 자리가 0인 경우도 정수에 포함하고, 출력 정수는 하나의 문자열이 돼야 함 백트래킹으로 모든 (k+1)자리의 수를 구하고 조건이 맞는다면 집..
1. 객체 지향이란?OOP(Object-Oriented Programming): 객체 지향 프로그래밍컴퓨터 프로그램을 '명령어의 목록'으로 보기 보단, 여러 개의 독립된 단위인 '객체'들의 모임으로 파악하고자 하는 것프로그램에 변화가 생기면 '객체'를 갈아끼우면 되기 때문에 프로그램이 유연하고 변경하기 쉬움주로 대규모 소프트웨어 개발에 많이 사용됨 각 개체는 서로 메시지를 주고 받으며 데이터를 처리하는 방식으로 협력함요청하는 객체는 클라이언트, 응답하는 객체는 서버로 볼 수 있음혼자 있는 객체는 없으며, 이 수 많은 클라이언트와 서버 객체들은 서로 협력 관계를 가짐서버인 객체가 클라이언트가 될 수도 있음 절차 지향 프로그래밍은 데이터 위에서 동작하는 함수를 작성하는 데에 집중하는 반면, 객체 지향 프로그..
https://www.acmicpc.net/problem/22105 × 5 크기의 숫자판이 존재하고, 각 칸에는 0부터 9까지의 숫자가 적혀있다. 임의의 칸에서 시작해서, 인접한 네 방향으로 다섯 번 이동하면서 각 칸에 적힌 숫자를 붙여 6자리의 수를 만든다. 만들 수 있는 서로 다른 6자리의 수의 개수를 구하는 문제다. 문제 탐색하기- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정ex. 가능한 시간 복잡도, 알고리즘 선택가능한 시간 복잡도임의의 시작 위치 선택: 5 × 5인접한 네 방향으로 다섯 번 이동: 4 × 4 × 4 × 4 × 4 dfs로 ..
🐛이슈- 발생한 오류 copy & paste- 오류가 발생한 상황 간략히 설명작업 중이던 내용을 기존 브랜치에 커밋하고 싶지 않아서 새로운 브랜치를 만들어 작업하고 있었음 (굳이굳이...)작업이 끝나고 git add 명령어와 git commit 명령어는 정상적으로 돌아가는 걸 확인했지만, git push origin ... 명령어는 'Everything up-to-date'라는 문구가 뜨며 원격 저장소에 올라갔는지 확인할 수 없었음원격 저장소를 확인해봤지만 변화가 없었고, 'compare & pull request'도 뜨지 않음 😓원인과 해결방안- 오류가 발생한 원인 간략히 설명- 해결방안 설명git push origin develop 명령어는 로컬 저장소의 develop 브랜치에서 원격 저장소의 ..
https://www.acmicpc.net/problem/1182N개의 정수로 이뤄진 수열이 있을 때, 크기가 양수인 부분수열 중 그 수열의 원소를 모두 더한 값이 S가 되는 부분수열의 개수를 구하는 문제다. 문제 탐색하기- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정ex. 가능한 시간 복잡도, 알고리즘 선택입출력 제한1 ≤ N ≤ 20|S| ≤ 1,000,000 (주어지는 정수의 절댓값은 100,000을 넘지 않음) 만들 수 있는 모든 부분수열의 개수는 2²⁰ = 1,048,576개다. 부분수열마다 모든 원소의 합을 구하는 방식은 불가능하고, 백..
1. 캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해 전체 데이터를 다운 받아야 함인터넷 네트워크는 하드 디스크 등에 비해 상대적으로 매우 느리고 비쌈브라우저 로딩 속도도 느리기 때문에 사용자는 느린 경험을 하게 됨 캐시가 있을 때응답에 cache-control로 캐시가 유효한 시간(초)을 함께 보낼 수 있음웹 브라우저에서 브라우저 캐시에 응답 결과를 저장함두 번째 요청 때는 캐시가 유효하다면 브라우저 캐시에서 받아오면 됨캐시 유효 시간 검증 & 브라우저 캐시에서 조회캐시 유효 시간 동안은 네트워크를 사용하지 않아도 되기 때문에 느리고 비싼 네트워크 사용량을 줄일 수 있음 캐시 유효 시간을 검증했는데, 끝난 경우엔 네트워크를 통해 데이터를 받아야 함 (캐시 갱신) 2. 검증 헤..
https://www.acmicpc.net/problem/16937 크기가 H × W인 모눈종이에 크기가 Ri × Ci인 스티커 N개 중 2개를 최대한 넓게 붙이는 문제다.두 스티커는 겹쳐질 수 없고 모눈종이를 벗어날 수 없으며, 두 스티커가 접하는 것과 스티커를 90도 회전시키는 것은 가능하다. 문제 탐색하기- 문제에서 구해야 하는 최종 정답은 무엇인지 탐색한 과정- 그 정답을 구하기 위해 어떻게 코드를 구현해야 할지 고민한 과정- 문제에 들어오는 범위를 파악하며 어떤 알고리즘을 쓸 수 있을지 고민해 가는 과정ex. 가능한 시간 복잡도, 알고리즘 선택입출력 제한1 ≤ H, W, N ≤ 1001 ≤ Ri, Ci ≤ 100입출력 제한이 작아서 브루트 포스로 먼저 시도해보는 게 좋을 듯하다. (+ int 범..
1. HTTP 헤더 개요RFC2616 (1999년)a. HTTP 헤더 분류General 헤더메시지 전체에 적용되는 정보ex. Connection: closeRequest 헤더요청 정보ex. User-Agent: Mozilla/5.0 (Macintosh; ...)Response 헤더응답 정보ex. Server: ApacheEntity 헤더엔티티 바디 정보ex. Content-Type: text/html, Content-Length: 3423 b. HTTP 바디메시지 본문(message body)에 엔티티 본문(entity body)을 담아 전달함엔티티 본문은 요청이나 응답에서 전달할 실제 데이터엔티티 헤더는 엔티티 본문의 데이터를 해석할 수 있는 정보를 제공함ex. 데이터 유형(html, json), 데이..