* 공부하면서 스스로 이해하기 위해 정리한 글입니다. 사실이 아닌 정보가 있을 수 있습니다..(많을 것입니다....) *✅Intranet 인트라넷 (사내망, Private Network)대학, 연구기관, 집과 같이 갇힌 공간에 국한된 네트워크인트라넷은 외부로 트래픽이 나가지 않아서 보안을 위해 혹인 개인/단체적 활용을 위해 사용된다. 인트라넷을 이해하기 위한 한가지 상황을 살펴보자.중학교, 고등학교 때 컴퓨터실에서 실습한 경험을 떠올려 보자. 컴퓨터실에 가면 여러 대 컴퓨터가 하나의 장치(LAN)에 연결된 걸 볼 수 있다. 이렇게 LAN에 직접적으로 연결된 컴퓨터들이 인트라넷을 구성하고 있다.동일한 LAN에 연결된 컴퓨터들은 온라인 서비스가 불가능해도 같이 게임을 진행할 수 있다고한다.어떻게 진행할 수..
분류 전체보기
문제 발단서비스에서 구글 로그인을 지원하고 있는데 이미 구글 계정을 사용하여 자체 회원가입을 진행한 상황.마이페이지에서 회원정보 변경시 회원 인증을 이메일로만 인증하고 있었고, 구글 로그인 한 후 회원정보를 변경해보니 오류가 발생하였다 이 상황에서 어떻게 해결해야하면 좋을까? 해결 방법 방법1.회원가입시 provider라는 속성을 함께 저장하는데, 자체 회원가입은 `NATIVE`로, 구글 회원가입은 `google` 로 저장되도록 설계되어 있다.회원 인증을 이메일로만 인증하지 말고 이메일 + provider로 인증하는 것이다. 1. 자체 회원가입에 구글계정으로 회원가입 후, 구글 회원가입을 진행할 경우문제 상황과 같이 구글 계정으로 자체 회원가입을 진행한 상황인데, 구글로 OAuth를 시도하게 되면 OAu..
✅ 문제https://school.programmers.co.kr/learn/courses/30/lessons/60060 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr✅ 접근 방법🔴 첫번째 시도(틀림)찾고자 하는 단어를 '?'를 중심으로 자르고 keyword에 저장한다음 이진 탐색으로 탐색하는 방법으로 시도했다. 해당 키워드를 words 배열에서 찾았을 때 `start += 1` 해서 다시 words에 키워드가 있는지 검사하는 방법으로 했는데 이렇게 하면 동일한 가사가 검색 될 경우도 있어서 당연히 틀렸다. 아래 코드와 같이 작성함def binary_sea..
틀린 코드첫번째 시도n = int(input())alpha = []length = []for _ in range(n): s = input() alpha.append(s) length.append(len(s))alpha.sort(key=lambda x:len(x), reverse=True)dict = {}num = 9def alpha_to_int(a, next): global num length = len(a) for i in a: if next 단어 길이를 순차적으로 탐색하면서 길이가 가장 긴 문자열한테 큰 수부터 차례대로 할당해주고 그다음 길이간 긴 문자열한테 할당해주고... 이런식으로 했는데 이렇게 접근하니까 답도 안나오고, 너무 복잡하게 생각했나 싶어서 다른 코드를 찾고하였..
문제https://school.programmers.co.kr/learn/courses/30/lessons/178870시행착오맨 처음에 이중 for문을 사용해서 완전 탐색으로 찾으려고 했다. sequence[0]부터 끝까지 탐색, 다시 sequence[1]부터 끝까지 탐색.. 이렇게 하려고 했다.그러면 시간초과 (sequence최대 배열 길이가 100만이니까 이중 for문을 쓰면 10억을 훨씬 넘어간다. 이코테에서 연산 횟수가 10억을 넘어가면 c언어를 기준으로 1초를 넘어가니까 파이썬은 더 오래걸리겠지..? 그래서 문제에 나와있는 '비내림차순' 이라는 조건을 활용해서 O(n)으로 풀어보자했다. 근데 전혀 방법이 생각이 나질 않아서 프로그래머스에 질문목록을 참고했고 아래 코드를 보았다def solut..
시행착오기둥과 보를 설치하거나 삭제할 경우 is_possible(x, y, a, answer)를 이용해서 answer에 x, y 좌표에 a(기둥/보)를 설치할 수 있냐 없냐를 반환하려고 했다. 1. 설치할 경우 answer.append(x,y,a)로 설치한 후 , is_possible(x, y, a, answer) 실행하고 함수가 false를 반환하면 answer.remove(x,y,a)해서 설치한거 제거 2. 삭제할 경우 answer.remove(x,y,a)로 제거한후, is_possible(x, y, a, answer) 실행하고 함수가 false를 반환하면 answer.remove(x,y,a)해서 설치한거 제거 근데 is_possible에 x,y,a를 넘겨줘서 그걸 기준으로 설치할 수 있느냐..
구현 중 고민되었던 부분첫번째뱀의 이동 방향에 따라 왼쪽, 오른쪽 회전 방향이 달라지는데 그걸 어떻게 구현해야하나나 같은 경우 딕셔너리를 사용해서 하나씩 다 정의해 주었다.dic = {"상":{"L":"좌", "D":"우"}, "하":{"L":"우", "D":"좌"}, "좌":{"L":"하", "D":"상"},"우":{"L":"상", "D":"하"}} 두번째뱀이 머리를 옮기고 꼬리를 이동하는 중에 중간에 몸통은 어떻게 옮겨야하나 이 부분에서 막혀서 문제를 풀지 못했다 고민 해결책이코테 책을 보고 해결하였다.첫번째처음에 오른쪽을 보고 있다고 문제에서 주어졌다.#시계 방향, 반시계방향으로 돌아가게 하기 위한 세팅(처음에 오른쪽을 보고 있으므로 동,남,서,북으로 초기화)dx = [0, 1, 0, -..
문제 원인yml파일을 git에서 추적하지 않기 위해 .gitignore에 적용했지만 계속 추적하는 원인이 git 캐시라고 한다.해결 방법git 캐시를 지워주면 된다.`git rm -r --cached .` 하면 모든 파일의 캐시가 지워지고 다시 모든 파일을 커밋할 수도 있지만`git rm -r --cached {yml파일 경로}` 이렇게하면 yml 파일만 캐시에서 삭제할 수 있고 모든 파일을 다시 커밋하지 않아도 된다. 1. `git rm -r --cached {yml파일 경로}`2. `git add {yml파일경로}`3. `git commit -m "Delete git cached"`위 과정을 거치면 yml파일을 git 추적에서 제외할 수 있다.
이코테에서 효율적인 화폐 구성 문제와 비슷해서 비슷한 풀이로 풀 수 있었다.첫번째 코드n = int(input())#설탕이 최대 5000이므로 data = [5001] * (n+1)bag = [3, 5]for i in bag: if i > n: continue data[i] = 1#배열 n에...3키로,, 5키로for k in bag: for i in range(k, n+1): if data[i-k] != 5001: #가방 단위로 배달 가능하면... data[i] = min(data[i], data[i-k]+1)if data[n] != 5001: print(data[n])else: print(-1) 이전에 이 문제를 푼 코드가 있어서 확인해 봤더니 이전에 푼 코드가 더 빠르고..