목록전체 글 (169)
하다보니

예 안녕하세요. 앞서 2개월 차 회고 쓴 사람입니다. 맞습니다. 복습기간을 맞아 1주차 회고부터 쓰며 노션에만 고이 모셔놓았던 제 학습의 기록을 블로그로 남겨보려 합니다. 1주 차는 JavaScript의 주요 문법에 대해 배우는 시간을 가졌습니다. 자료구조도 정리하였습니다. 바로 시작합니다. 출바알~! 프론트 엔드 개발자와 JavaScript 브라우저는 웹 프론트엔드 개발자가 작성한 로직이 돌아가는 실행기입니다. 다른 직군과 다르게 운영체제와 환경에 크게 구애받지 않고 브라우저라는 가상 환경에만 집중하여 개발하는 것이 가능합니다. 브라우저의 동작원리 통신, 렌더링, 스크립트 실행, 3가지 동작으로 나눌 수 있습니다. 통신은 서버와의 통신을 말합니다. 렌더링은 돔이라는 객체에 화면을 그리는 것입니다. 돔은..

프로그래머스에서 주관하는 K-Digital Training : 2기 빅데이터 플랫폼 프론트엔드 엔지니어링 코스에 참여하게 되었다. 코딩테스트와 면접을 통해 선발되었는데 2개월 정도 지난 지금, 같이 공부하는 동료들을 보면 나는 정말 운이 좋게 합격했구나.. 하는 생각이 든다..ㅎㅎ😂정말 많이 배웠고, 학습의 방향성도 많이 잡혔지만, 아직 이 학습의 끝에 원하는 회사에서 개발을 하고 있는 내 모습이 있을 것이라는 확신은 들지 않는다. 공부를 하면 잘 할 수 있을 것이라는 생각은 드는데 내 노력이 많이 부족한 것 같다. 지치지 않고 흥미를 꾸준히 유지하면서 노력하는 게 이 분야에서 말하는 재능인가 싶은 생각도 든다. 그렇다고 마음편히 노는 날도 없고, 매일 무엇인가 끊임없이 하며 모니터 앞을 떠나지 못한다...
rest+ful rest란? 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처 네트워크 리소스를 정의하고 처리하는 방법을 설명하는 일련의 원칙을 기반으로 하는 아키텍처 스타일 그러니까!!! 클라이언트와 서버가 데이터를 주고 받는 방식에 대해 정리한 원칙이 있고 그 원칙을 기반으로 하는 아키텍처 스타일을 rest라고 한다. http의 주요 저자 중 한 사람인 로이필딩...http가 제대로 사용되지 못하는 점을 안타까워하며 http의 장점을 최대한 활용할 수 있는 아키텍처로 rest를 발표하게 된다... rest의 원칙은 http를 잘 활용하기 위한 원칙이라고도 할 수 있다. 이 rest에 대한 원칙을 준수했을 때 restful하다 한다. rest는 특정 기술이 아닌 아키텍처 스타일이다. 일반적으로 웹개발..

상태란? 변화하는 데이터다. UI에 동적으로 표현되는 데이터, 사용자의 액션에 따라 변경될 수 있는 컴포넌트의 부분을 나타내는 JS의 객체라고 볼 수 있다. 상태 관리란? 여러 컴포넌트 간의 데이터 전달과 이벤트 통신을 한 곳에서 관리하는 것을 의미한다. 앞서 말한 상태, 즉 계속 변화하는 데이터를 알맞게 관리하기 위해 나온 개념. 상태가 변경되면서 UI가 변경된다. 상태 관리가 왜 필요해? ui는 사용자와 끊임없이 상호작용을 한다. 이전에 사용자들은 잦은 페이지 이동이 있는 사이트를 사용했었다. 페이지가 바뀔 때마다 서버에서 데이터를 가져오기 때문에 매번 페이지가 다시 그려진다. 그런데 지금의 사용자들은 이전과 같이 페이지 전환이 많은 웹 페이지를 사용하기를 원하지 않는다. 데이터가 바뀌어도 페이지가 ..
문제) 연속된 3개의 계단을 밟지 않고 한 번에 한 계단, 또는 두 계단을 올라 마지막 도착 계단에 도달할 때, 얻을 수 있는 총 점수의 최댓값 해결 방법) DP , 작은 하위 문제로 큰 문제를 해결한다. DP 해결 방법 1. 테이블 정하기 2. 점화식 구하기 3. 초기값 구하기 ''' 1. 테이블 정의하기 d[i]=i번째 계단을 밟을때 얻는 최대값. 2. 점화식 d[i]=d[i-1]+c[i] d[i]=d[i-2]+c[i]의 max 2. 초기값 d[0]=0 d[1]=c[1] ''' n=int(input()) c=[0] for i in range(n): x=int(input()) c.append(x) d=[0]*(n+1) d[1]=c[1] for i in range(2,n+1): d[i]=max(d[i-1..
- 문자열 일정 길이로 자르기 seq='abcdefgh' length=2 seq=[seq[i:i+length] for i in range(0,len(seq),length)] seq=[''.join(x) for x in zip(*[list(seq[z::length])] - 10진법 ->n진법 변환 def convert(n, base): T = "0123456789ABCDEF" q, r = divmod(n, base) if q == 0: return T[r] else: return convert(q, base) + T[r]
1. set s={} s=set() s = {3, 5, 7} //set 의 in 2 in s //set의 원소 추가 k={100,105} k.add(50) //set의 update - 여러 데이터를 한번에 추가할 때 사용 k={1,2,3} k.update([3,4,5])//{1,2,3,4,5} //set의 원소 제거-remove(item) item에 해당하는 원소를 제거하고 없으면 에러 발생 k={1,2,3} k.remove(3) k//{1,2} //set 원소 제거-discard(item) item에 해당하는 원소를 제거하고 없어도 에러를 발생하지 않음. k = {1, 2, 3} k.discard(3)
파이썬의 내장 자료구조인 dictionary를 사용하다보면 어떤 키에 대한 값이 없는 경우에 대한 처리를 해야하는 경우가 자주 발생한다. 이러한 경우 일반적으로 어떻게 처리하는지 살펴보고 관련한 해결 방법을 알아보도록 하자. 1. dic.setdefault 파이썬의 딕셔너리는 setdefault 함수를 제공한다. 첫번째 인자로 key값, 두번째 인자로 기본값을 넘기면 된다. def countLetters(word): counter = {} for letter in word: counter.setdefault(letter, 0) counter[letter] += 1 return counter 하지만 for 루프 내에서 setdefault 함수가 무조건적으로 항상 호출되는 부분이 좀 별로다. 더 나은 방법...
파이썬에서 리스트에 있는 값들의 모든 조합을 구하기 위해서는 여러 방법이 있다. 파이썬 기본 라이브러리인 itertools를 사용하면 쉽게 구할 수 있다. from itertools import product from itertools import permutations from itertools import combinations - 하나의 리스트에서 모든 조합을 계산해야 한다면 permutations, combinations를 사용. - 두개 이상의 리스트에서 모든 조합을 계산해야 한다면 product를 사용. //순열 - 순서가 있음 items=['1','2','3','4','5'] from itertools import permutations list(permutations(items,2)) //..
#include #include #include using namespace std; int n;//총 n 명. n을 반반씩 나눠서 팀을 나눈다. int board[25][25]; int main() { cin >> n; for (int i = 0; i > board[i][j]; } } vector team(n); fill(team.begin() + (n / 2), team.end() , 1); int mn = 0x7f7f7f7f; do { int diff = 0; for (int i = 0; i < n-1; i++) { for (int j = i + 1; j < n; j++) { if (team[i] != team[j]..