분류 전체보기

    [BOJ JAVA] #2750 수 정렬하기

    풀이🛫 import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 첫번째 입력값 : 입력될 수의 갯수 int n = Integer.parseInt(br.readLine()); // 입력되는 수를 arr에 기록 int[] arr = new int[n]; for (int i = 0;..

    [Error] Method springSecurityFilterChain in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration required a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' that cou..

    소셜 로그인 기능 구현하고 집에와서 pull 받아 실행하려니 위와같은 에러가 발생했다 OAuth에 사용된 아이디와 비밀 코드를 gitignore로 등록해두었기 때문에 발생 application-oauth.properties를 생성해주면 해결 가능하다

    [SSAFYcial] SSAFY 트랙 이동이 궁금하다면?

    안녕하세요 알음알음 성장로그를 작성하고 있는 싸피셜 기자 김경민입니다. 1/4일인 오늘, 저희 교육장에는 큰 변화가 하나 일어났는데요 바로 9기 교육생분이 오프라인 출석을 시작하셨다는 점입니다..!! (코딩의 세계에 오신걸.. 환영합니다..) 합격 문자를 확인하고 부푼 마음과 함께 첫 등원을 하던 순간을 저도 잊지 못하고 있는데요. 그때의 기대와 긴장감을 가지고 싸피 기간을 풍족하게 누리셨으면 합니다 :) 새로 입과하신 9기 교육생분들을 대상으로 무슨 정보를 전달하면 좋을까 고민하던 차에 6개월 전 '트랙 이동'에 관심이 많았던 제 모습이 떠올랐습니다. 그래서 이번 자율 기사는 '트랙이동'을 주제로 경험과 정보를 전달해보려고 합니다. 싸피의 교육과정 먼저 싸피의 교육과정에 대해 설명하자면 3개의 트랙 [..

    [백준 파이썬] #11725. 트리의 부모 찾기

    풀기 전 생각해보기😮 가급적 pypy3로 채점할 것을 추천한다 - python3로 채점이 정말 오래 걸렸다 트리 구조를 그리고, 각 노드의 부모를 찾는 문제 DFS로 풀 경우 recursionlimit을 10**6까지는 열어둬야 한다 풀이🛫 BFS 풀이 from collections import deque def bfs(node): queue = deque() queue.append(node) while queue: n = queue.popleft() for i in graph[n]: if parent[i] == -1: parent[i] = n queue.append(i) N = int(input()) graph = [[] for _ in range(N+1)] parent = [-1 for _ in ra..

    [백준 파이썬] #1967. 트리의 지름

    풀기 전 생각해보기😮 루트노드로부터 가장 먼 지점을 찾고, 해당 지점을 다시 루트 노드로하는 가장 먼 지점을 찾으면 트리의 지름을 구할 수 있다 recursionError가 발생하면 setrecursionlimit을 먼저 적용해보자 풀이🛫 구글링 참고 # 루트노드로부터 가장 먼 지점(가중치의 합)이 가장 큰 지점을 찾는 과정을 두번 반복 # visited를 음수값으로 설정하고 확인할 때마다 값을 바꿔준다면 방문 여부의 확인과 함께 거리를 나타낼 수 있다 import sys sys.setrecursionlimit(10**6) # 최대 재귀 깊이를 늘려주는 코드 def dfs(node, weight): for n, w in graph[node]: if visited[n] == -1: # 확인한 적이 없는 노..

    [백준 파이썬] #2644. 촌수계산

    풀기 전 생각해보기😮 트리 그래프 그리기, 방문 여부를 체크해주는 것으로 풀이가 가능 양방향 간선 vs 단방향 간선 연결관계 중 어떤 것을 선택해야 할까 BFS 풀이로 접근해보자 풀이🛫 구글링 참고 # 트리 구조를 그리고 visited 여부 체크 # 시작하는 노드로부터 부모, 자식에 관계없이 촌수를 체크할 수 있다 -> visited는 비교 노드간 거리가 됨 from collections import deque def bfs(node): queue = deque() # 덱 생성 queue.append(node) # 덱에 노드 정보 입력 while queue: # 큐가 살아있는 동안 node = queue.popleft() # 노트에서 하나의 요소를 빼서 for i in graph[node]: # 연결된 ..

    [SSAFYcial] SSAFY 기업 탐방: 모빌리티 플랫폼 쏘카에 다녀오다!

    안녕하세요! SSAFY에서는 SW 역량 강화를 위한 교육 프로그램도 있지만 취업지원과에서 실시하는 기업탐방 프로그램도 있습니다! 운이 좋게도 기업탐방 참여자로 선정되서 쏘카를 다녀왔는데요. 모빌리티 플랫폼을 대표하는 쏘카! 탐방하고 온 이야기를 적어보겠습니다! 이번 SSAFY에서 진행된 쏘카 기업탐방은 신청자들 중 20명을 선정해서 진행되었습니다. 지원서를 작성할 때 왜 이 기업을 탐방하고 싶은지를 나타내는 항목이 있었는데 저는 도로교통공단에서 진행했던 프로젝트 경험을 살려서, 실제로 사람들이 많이 이용하는 기업의 업무환경을 보고 싶었다는 것을 적었던 것 같습니다. 기업탐방 전날 사전 OT를 진행했고, 다음날 약속장소인 서울숲역 디타워에서 집결했습니다. 성수역에서 간단히 점심을 해결하고 약속장소로 걸어갔..

    [백준 파이썬] #2206. 벽 부수고 이동하기

    풀기 전 생각해보기😮 일반적인 브루트 포스 방식으로 접근했을 때 시간초과가 발생했다. 모든 벽을 부셔서 최단 거리를 구해보는 알고리즘으로 풀 수 없다? → 시간초과 발생 : BFS 기본 시간 * 부술 수 있는 벽의 수 : 문제에서 1000*1000으로 시간제한에 걸린다 참고: https://www.acmicpc.net/board/view/84960 벽을 단 한번만 부실 수 있다는 조건을 이용해서 3차원으로 푸는 것이 일반적인 해답인 듯 하다. 풀이🛫 구글링을 참고 # 구글링 : 3차원 풀이 방식 사용 # 벽을 단 한번만 부술수 있기 때문에 벽을 부쉈는지의 여부를 하나의 차원에 나타내서 풀 수 있다 # 3차원방식 도입 풀이 from collections import deque dcol = [-1, 0, 1..

    [백준 파이썬] #2638. 치즈

    풀기 전 생각해보기😮 너비우선 탐색을 통해 풀이 풀이🛫 from collections import deque dcol = [-1, 0, 1, 0] drow = [0, 1, 0, -1] def find_surface(): # 치즈의 표면을 찾기 queue = deque() visited[0][0] = 1 # (0, 0)에서부터 탐색 시작 queue.append((0, 0)) while queue: col, row = queue.popleft() for v in range(4): ncol = col + dcol[v] nrow = row + drow[v] if 0

    [백준 파이썬] #1717. 집합의 표현

    풀기 전 생각해보기😮 재귀 호출 깊이를 지정해주지 않았을 때 recursion error가 발생했다. import sys 또한 빠뜨리지 않도록 주의하자 (import를 빼먹으면 name error 발생) 풀이🛫 import sys sys.setrecursionlimit(10**5) # 서로소 집합 문제 # pypy3 채점 def find(x): # x의 부모 값을 return if x == p[x]: # 자기 자신을 부모로 갖는 경우 return p[x] # 그대로 return # return x를 해도 동일함, 그러나 return 값을 p[x]로 맞춰주기 위해 p[x]로 연습하자 # 자기 자신을 부모로 갖지 않는 경우 p[x] = find(p[x]) # path compression 진행 return ..