기능 흐름 [채팅방 입장] 메인 화면에서 API로 캠핑장 정보 조회 후 상세보기화면에서 채팅방 참가 상단바의 채팅 배너를 클릭하면 채팅방 목록 확인 가능 [채팅방 내부] 채팅방에 참여하는 유저 리스트 확인 가능 채팅방 접속 / 퇴장 시 알림 메세지 채팅방 (캠핑장) 위치와 사용자 현재 위치를 비교해 근방에 있는 사용자는 닉네임 옆에 캠핑장 이모티콘 표시해서 채팅 커뮤니티 내에서 캠핑장에 있는 사람 / 아닌 사람을 구분 stomp 연결을 해제해도, DB에 구독 정보를 저장해두어서 나중에 접속했을 때 기존 메세지를 불러올 수 있음 다른 채팅방 구독 정보가 있는 사용자가 또다른 채팅방에 접속할 경우 기존 내용 삭제되는 것을 알림 채팅 서버 구성 스프링 stomp websocket이 기본으로 제공하는 simpl..
공공데이터는 csv로 제공되는 경우가 많은데, 이를 json으로 변경해 활용하기 위해서 convert를 수행한 결과 한글이 무참히 깨져버렸다! 한글 깨짐 현상을 해결하는 방법 : 구글 스프레드 시트에 파일을 불러온 다음, 파일 - 다운로드 - 쉼표로 구분된 값(.csv) 저장 후 다시 convert 해주자.
문제 설명 👨🏻💻👩🏻💻 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 구현 👨🏻💻👩🏻💻 알고리즘 종류: DP 큰 문제의 최적해가 작은 문제의 최적해들을 합쳐서 구해질 수 있는 경우 동적 계획법으로 해결할 수 있음 시간복잡도: O(N^2) def solution(triangle): n=len(triangle) for i in range (1,n): # 줄 for j in range (i+1): # 줄에 있는 요소 if j == 0:..
문제 설명 👨🏻💻 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 코드 구현 👨🏻💻 알고리즘 종류: 시간복잡도: O(n) lists=[] for i in range(9): N=int(input()) lists.append(N) #print(lists) a=max(lists) print(a) print(lists.index(a)+1) 풀이 방법 👨🏻💻 1차 시도 9번 입력받는 걸 못본 실수도 있었고 enume..
문제 설명 👨🏻💻 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 코드 구현 👨🏻💻 알고리즘 종류: 시간복잡도: O(n) from collections import Counter s = list(str(input()).upper()) if len(s) == 1 : #문자열 길이가 1인 경우 그대로 출력 print(s[0]) else: #문자열 길이가 2 이상인 경우 cnt = Counter(s).most_common(2) if cnt[0][1] == cnt[1][1] : p..
문제 설명 👨🏻💻 https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 코드 구현 👨🏻💻 알고리즘 종류: 구현 시간복잡도: O(n) a = list(map(int,input().split())) square = 0 for i in range(len(a)): square += a[i] ** 2 unique = square % 10 print(unique) 풀이 방법 👨🏻💻 1차 시도다만 이 문제를 풀면서 A의 n승을 구하는 수식이 ‘**A **..
문제 설명 👨🏻💻👩🏻💻 https://school.programmers.co.kr/learn/courses/30/lessons/42842 코드 구현 👨🏻💻👩🏻💻 알고리즘 종류: 완전탐색 시간복잡도: O(N) 아마도? def solution(brown, yellow): answer = [] yellow_x = 0 yellow_y = 0 for i in range (1,yellow+1): #옐로우의 갯수만큼 반복문을 돌린다 if yellow % i == 0: #옐로우의 갯수가 i로 나누어 떨어질 경우 yellow_x = int(yellow / i) #옐로우를 i로 나눈 몫이 yello의 가로 길이가 되며 yellow_y = i #옐로우의 세로 길이는 i가 된다 if (yellow_x * 2 + yel..
문제 설명 👨🏻💻 리트코드 3번 https://leetcode.com/problems/longest-substring-without-repeating-characters/ int: window = set() left = 0 result = 0 for right in range(len(s)): while s[right] in window: window.remove(s[left]) left += 1 window.add(s[right]) print(window) result = max(result, right - left + 1) return result 풀이 방법 👩🏻💻 투포인터, 슬라이딩 윈도우 기법을 이용해서 문제를 풀었고 문자열의 시작부터 끝까지 포인터를 오른쪽으로 옮기면서 순회하며 중복이 없는 문..