개발자

군대에 처음 들어올 때 세웠던 목표 세가지가 있었다. 목표를 꼭 이루기 위해 블로그에서도 적어놨었다. 그중에 가장 이루고 싶었고 무조건 이루고 나가야겠다고 다짐했던 첫번째 목표인 백준 solved.ac 티어 플래티넘을 달성했다. 이전에는 프로그래밍을 거의 해보지도 않았고 알고리즘이라고 했을때 단순 입출력 받아서 처리하는게 알고리즘인줄 알았다. 지금 생각하면 약간 부끄럽다..ㅎ 이 생각을 군대 들어오기전까지 가지고 있었으니까 얼마 지나지 않은 과거이다. 개발자를 진로로 삼아야겠다는 다짐을 군대 오기 약 3달전에 했으니 그럴수도 있나? 여튼 전공은 컴퓨터공학과지만 진로를 잡은 시기가 늦어 그만큼 남들을 따라잡기 위해 스스로 꾸준히 했다. 문제가 안풀리면 짜증나지만 풀렸을 때 희열감이 미치겠다. 희열감 없었으..
https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 1. Logic - 주어지는 문자열의 갯수가 최대 50이니 시간복잡도를 계산해 봤을때 각 자리수에서 1씩 증가하며 뒤에 붙히고 팰린드롬을 확인하는 최악의 경우의 수를 생각해도 50 * 50 * 50 정도일 것이라고 생각해서 2초안에 충분히 돌 수 있다고 판단함. > 전부 확인해 보기 - str[0]부터 1씩 증가해가며 str의 뒤에 붙히고 팰린드롬인지 확인하기 2. Code #include using ..
App() 이 실행하게 되면 rendering 과정을 거치게 되면서 counter에 0을 넣고 rendering onClick() 함수가 연결 된 button을 클릭하게 되면 이전counter와 현재 counter의 참조 값을 비교해서 참조값이 다르면 rerendering. 2. State Function .state function을 사용하는 방법에는 2가지가 존재한다. 1. 값을 직접 전달하는 방법 setCounter(counter + 1) --> 2. 함수를 전달하는 방법 setCounter((current) => current + 1) --> 확실한 현재값을 전달해 줄 수 있음 공부한 내용을 바탕으로 이해한 것을 그대로 적은 공부일기장입니다! 틀리거나 잘못 이해한 부분이 있다면 지적해주시면 감사하..
https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net #include using namespace std; void star(int i, int j, int n) { if((i / n) % 3 == 1 && (j / n) % 3 == 1) cout n; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { star(i, j, n); } cout
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 1. Logic - 값을 확인해주며 0이 나왔을때는 값을 빼줘야하기때문에 후입선출(Last In First Out)의 성질을 가진 stack 활용. - 정수가 입력되면 sum에 더해주고 0이 나오게되면 stack의 최상단 값을 sum에 빼주고 stack에서 pop #include using namespace std; stack s; int main() { int ..
//1 => 바꾸고싶은 데이터 counter 라는 데이터를 받아서 사용자들이 보게 될 컴포넌트인 return에 데이터를 담는다. //2 => 사용자들이 보게 될 부분에 변수를 연결해줌 //3 => counter값을 변경해 줄 함(setCounter)를 Button에 연결하여 호출함 //4 => counter의 새로운 값(counter + 1)을 가지고 해당 함수를 호출해 줌 React는 코드에서 업데이트되는 부분을 골라서 HTML에서 그 부분만 골라서 고쳐줌 > F12의 console에서 확인하게 되면 정확히 업데이트 되는 부분 > counter의 숫자만 1씩 올라감 //1 > React.useState(0); >> 컴포넌트에서 바뀌는 값을 관리하는 함수 1. Component란? - 리액트로 만들어진 ..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 1. Logic - 버틸수 있는 무게 >= 지금까지의 무게 + 이번(넣을 or 넣지 않을) 차례의 무게 - 가능하다면 이후의 항의 최댓값에 현재 배낭의 value를 더해주기 #include using namespace std; vector goods; int dp[101][100001]; int n, k; int solve(int ..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1. Dynamic programming(동적 계획법) - 하나의 큰 문제를 작은 문제로 나누어 푸는 방법 - 재귀로 풀게되면 계산했던 경우의 수도 한번 더 하기 때문에 메모이제이션(Memoization)을 통해 계산한 값을 배열에 저장하고 다음 호출때 이전에 계산했던 값을 만나게 되면 계산하지 않고 값을 불러와서 사용함. - 시간복잡도를 현저히 줄일 수 있음. 2. Logic 1. 조건에 맞춰 3가지 분기를 만든다. 2. 완성된 수가 주어지기 때문에 주어진 수에서 1로 만들어가며 실행한다 3. 기저조건은 수가..
보글보글소다
'개발자' 태그의 글 목록