분류 전체보기

개발

Spring boot의 Stomp-websocket으로 구성한 채팅 기능

기능 흐름 [채팅방 입장] 메인 화면에서 API로 캠핑장 정보 조회 후 상세보기화면에서 채팅방 참가 상단바의 채팅 배너를 클릭하면 채팅방 목록 확인 가능 [채팅방 내부] 채팅방에 참여하는 유저 리스트 확인 가능 채팅방 접속 / 퇴장 시 알림 메세지 채팅방 (캠핑장) 위치와 사용자 현재 위치를 비교해 근방에 있는 사용자는 닉네임 옆에 캠핑장 이모티콘 표시해서 채팅 커뮤니티 내에서 캠핑장에 있는 사람 / 아닌 사람을 구분 stomp 연결을 해제해도, DB에 구독 정보를 저장해두어서 나중에 접속했을 때 기존 메세지를 불러올 수 있음 다른 채팅방 구독 정보가 있는 사용자가 또다른 채팅방에 접속할 경우 기존 내용 삭제되는 것을 알림 채팅 서버 구성 스프링 stomp websocket이 기본으로 제공하는 simpl..

개발/발견

csv to json : 변환 시 한글 깨짐 현상을 해결하려면?

공공데이터는 csv로 제공되는 경우가 많은데, 이를 json으로 변경해 활용하기 위해서 convert를 수행한 결과 한글이 무참히 깨져버렸다! 한글 깨짐 현상을 해결하는 방법 : 구글 스프레드 시트에 파일을 불러온 다음, 파일 - 다운로드 - 쉼표로 구분된 값(.csv) 저장 후 다시 convert 해주자.

코테 준비/Programmers

[프로그래머스 lv.3] 정수 삼각형

문제 설명 👨🏻‍💻👩🏻‍💻 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:..

코테 준비/BOJ

백준 2562번: 최댓값

문제 설명 👨🏻‍💻 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..

코테 준비/BOJ

백준 1157번: 단어 공부

문제 설명 👨🏻‍💻 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..

코테 준비/BOJ

백준 2475번: 검증수

문제 설명 👨🏻‍💻 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 **..

코테 준비/Programmers

프로그래머스 Lv.2 - 카펫

문제 설명 👨🏻‍💻👩🏻‍💻 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..

코테 준비/Leetcode

리트코드 3번 문제 : Longest Substring Without Repeating Characters

문제 설명 👨🏻‍💻 리트코드 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 풀이 방법 👩🏻‍💻 투포인터, 슬라이딩 윈도우 기법을 이용해서 문제를 풀었고 문자열의 시작부터 끝까지 포인터를 오른쪽으로 옮기면서 순회하며 중복이 없는 문..

동키드
'분류 전체보기' 카테고리의 글 목록