[내일배움캠프]스파르타코딩클럽 AI 웹개발 (82) 썸네일형 리스트형 [내일배움캠프 22일차 TIL] 백준 23885 비숍 투어 with python 백준 23885번 비숍 투어 문제는 다음과 같다 비숍은 대각선 방향으로만 움직일 수 있는데출발점과 도착점이 주어졌을 때 비숍이 출발점에서 도착점에 갈 수 있다면 "YES"를 출력하고갈 수 없다면 "NO"를 출력하는 문제이다 처음 이 문제를 마주했을때는 냅다 깊이 우선 탐색을 이용해서 풀었는데문제 조건에 체스판의 크기가 최대 10^9의 제곱이기 때문에실제로 제출했을 때 메모리 초과라는 결과를 받았다.... 그래서 열심히 체스판을 그려가며 알아낸 결과 색칠이 된 부분끼리 이동할 수 있고 색칠이 안 된 부분끼리 이동할 수 있다그래서 처음엔 거리를 계산해봤는데 별다른 규칙을 찾지 못했고 그 다음으로 시도한 방법이 좌표를 비교하는 방법이었다 그 결과 출발 위치와 도착위치의 x좌표와 y좌표의 값의 차이가모두 짝수.. [내일배움캠프 21일차 TIL] 백준 1012 유기농 배추 with python 오늘은 백준의 1012번 유기농 배추 문제이다문제는 다음과 같다 서로 인접해있는 배추가 몇 군데 퍼져있는가를 출력하는 문제이다이 문제 역시 탐색 문제로 bfs또는 dfs를 이용해서 풀 수 있다 BFS를 이용한 풀이-> 시간초과처음엔 bfs를 이용해서 문제를 풀었다. 먼저 bfs 함수를 다음과 같이 정의해주고 (함수 이름 소문자로 했어야 했는데)def BFS(field, que): while que: # 큐에 남은 좌표가 없을 때까지 now = que.popleft() # 먼저 들어온 것 부터 now_y, now_x = now[0], now[1] # y좌표, x좌표 field[now_y][now_x] = 0 # 현재 좌표를 0으로 바꾸기 for d i.. [내일배움캠프 04주차 WIL] 더보기The four Fs (참고링크)FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지 제안, 글의 마무리는 스스로를 응원하는 말 한마디로때로는 힘들고, 좌절스러울 때도 있겠지만, 긍정적인 마무리로 스스로를 다독여주시면 좋겠습니다. 지난 일주일은 더 나은 다음주를 위한 발판이었으니까요! TAKE 1이번주는 코드카타 -> 강의듣기 -> 점심 -> 팀 회의 -> 스쿼드 및 북극곰 팀 숙제풀기 / 스쿼드 문제풀이 / 강의듣기 -> 저녁 -> TIL 작성 -> 남은 숙제그냥 이 루틴의 반복이었다 TAK.. [내일배움캠프 20일차 TIL] 백준 2606 바이러스 with python - bfs/dfs 더보기어제 트리의 부모찾기 문제를 꽤나 고생하며 풀어서 그런지 오늘 문제는 비교적 쉽게 풀었다트리의 부모 찾기 문제보다 조금 더 정석적이고 쉬운 bfs/dfs라 그랬을지도...?오늘은 두 가지 방법으로 문제를 풀어보려고 한다!왜냐면 튜터님이 그러라고 했으니까... 백준 2606번 바이러스 문제는 다음과 같다 어제 문제와는 달리 비연결 그래프라는 것!그리고 부모 노드를 출력하는 것이 아닌 1번 노드에서부터 연결된 노드들을 출력하는 것이다조금 더 정석적인 깊이/넓이우선탐색 문제인 것이다어제는 재귀로 깊이우선탐색을 풀었으니 오늘은 스택을 이용해서 깊이우선탐색을그리고 큐를 이용해서 넓이우선탐색을 구현하고자 한다 스택을 이용한 깊이 우선 탐색(DFS : Depth First Search)문제에 나와있는 예시.. [내일배움캠프 19일차 TIL] 백준 11725 트리의 부모 찾기 with python 백준 11725번 트리의 부모 찾기 문제는 다음과 같다 문제는 간단해보이지만 이해하는데 시간이 좀 걸렸다잠깐 문제에 대한 이해를 해보자면 첫 번째 입출력이 위와 같을 때 예제 입력에 대한 트리의 모양은 다음과 같다이때2번 노드의 부모는 43번 노드의 부모는 64번 노드의 부모는 15번 노드의 부모는 36번 노드의 부모는 17번 노드의 부모는 4이므로 출력은 4 6 1 3 1 4가 되는 것이다. 1차 시도처음 이 문제를 받고 든 생각은 트리를 만드는데 상위 노드만 저장되도록 만들면 되는 것 아닌가? 하는 생각이었다 {1 : True,2 : 4 ,3 : 6 ,4 : 1 ,5 : 3 ,6 : 1,7 : 4} 이렇게 만들어서 for 문으로 tree[i]를 출력하자! 였다 생각한대로 코드를 짜고 트리가 생각한.. [내일배움캠프 18일차 TIL] 백준 1927번 최소힙 더보기최소힙 문제 모듈 사용 안하고 풀려니까 너무 어렵다.......라이브러리가 존재함에 다시 한 번 감사하게 된다😂 어제부터 끙끙 앓으면서 풀던 최소 힙물론 파이썬은 heapq라는 모듈 통해 힙을 쉽게 구현할 수 있지만현재 나는 자료구조를 이해하고 어떻게 동작하는지 알아야 하기 때문에 직접 구현해보기로 했다물론 스쿼드 숙제에서 직접 구현해서 풀어보고 heapq를 사용해서 풀어보라고 했다 힙은 완전이진트리의 형태를 가지며 부모노드와 자식노드간에 대소관계가 있다. 내가 구현할 최소힙은 부모노드 내가 만들 힙에는 데이터를 삽입하는 메소드와, 데이터를 추출하는 메소드를 만들어야 한다기본적인 틀은 다음과 같다class MyHeap: def __init__(self): pass d.. [내일배움캠프 17일차 TIL] programmers 숫자 짝꿍 더보기코드카타 하면서 시간초과를 마주하지 않아 나름 행복하게 진행중이었는데 결국 피하지 못한 시간초과...그놈의 시간복잡도.... ㅂㄷㅂㄷ..하지만 그놈의 시간복잡도 때문에 내가 이런 생활이 가능한거겠지....시간초과때문에 내가 이 문제에만 한 시간을 넘게 매달렸다고... 문제는 다음과 같다 X와 Y라는 숫자로 이루어진 문자열을 받아와 공통으로 나타나는 수들을 조합하여 최대값을 문자열로 반환하는 문제이다. 첫 번째 시간초과 처음에는 받아온 두 문자열을 리스트로 만들고 하나의 리스트에서 요소를 하나씩 추출하며다른 리스트들 돌며 해당 문자가 있는지 확인하고 해당 문자가 있으면common이라는 새로운 리스트에 추가하였다그리고 common 리스트를 정렬한 후 join을 사용해 문자열로 만들어준 후 조건에 맞게.. [내일배움캠프 16일차 TIL] 백준 10828 스택 with python 더보기항상 프로그래머스로 문제 풀다가 백준으로 하니까 적응이 어렵다... 프로그래머스는 그냥 함수만 제출하면 되는데 백준은 input값을 넣어야 하고,,, 테스트케이스에 대한 정보도 없고,,, 아직 적응해나가는중이지만 차차 적응하겠지...!스쿼드 숙제 중 하나인 문제였다! 사실 파이썬에서는 리스트를 사용해서 스택 문제를 풀면 아주 쉽게 풀리지만 뭐가 문제인지 python3로 제출했다가 자꾸 시간초과가 떠서 pypy3로 제출해서 통과했다....그러면 코드에는 문제가 없다는 말 같은데... 혹시나 리스트를 사용해서 문제가 생기는건가 싶어 스택을 클래스로 직접 구현해서 문제를 풀어보기로 했다! 강의 내용을 떠올려가며,,, 사실 컨닝도 좀 했다스택의 구현에 필요한 Node와 Stack 클래스를 만들었다Nod.. 이전 1 ··· 5 6 7 8 9 10 11 다음