본문 바로가기

전체 글

(123)
[백준 2573]빙산 문제: https://www.acmicpc.net/problem/2573 1)문제 분류-BFS-DFS2)해결방안- 백준문제중 '치즈'문제와 유사하다. -0(바다)부분만 큐에 집어 넣는다. 1년 후 얼마나 녹을지에 대한 정보를 담은 새 맵을 만든다. 바다를 넣은 큐를 꺼내면서 4방향 (동서남북) 탐색하며 빙산이 있다면, 새 맵에 카운트를 센다. (빙산 기준에서 주위 4방향에 바다가 얼마나 있는지를 카운트하는 것 )- 큐를 다 돌린 후, 현재 맵에서, 아까 만든 새 맵의 카운트를 빼준다.(빙산이 녹은 1년 후의 맵을 다시 그리는 것)- 현재맵에서 빙산이 녹아 바다가 된(0이 된) 부분이 존재한다. -그 부분까지 포함해서 다시 큐를 돌리면된다. #include#include#include#include#inc..
[백준14502]연구소 1)문제분류 -DFS-BFS 2)해결방안 -기본 DFS와 BFS를 안다면 풀 수 있는 난이도? - 먼저 DFS로 3개의 막대를 세워보며 BFS로바이러스를 퍼뜨린다. - 그 후, 안전지대를 카운트 세며 크기비교하면, 가장 넓은영역을 알 수 있다. #include#include#include#include#includeusing namespace std; typedef struct v{int x, y;}v;queuevirous;int map[10][10];int xrr[4] = { 0,0,1,-1 };int yrr[4] = { 1,-1,0,0 };int n, m, hap;int ans = 0;//안전영역int BFS(){queuetemp;temp = virous;int chk[10][10] = { 0, };..
[백준 2151]거울설치 문제 : https://www.acmicpc.net/problem/2151 1)문제분류 -BFS -다익스트라 2)해결방법 - 거울설치는 45도 이다.그러므로 거울이 /와 \ (걍 이해하기쉽게 거울을 표현한 문자) 두가지로 꺾인다고 생각하고 문제를 푼다. 예) -> 오른쪽방향으로오는경우 / 을 만나면 ↑ \을 만나면 ↓ 오른쪽방향,왼쪽방향으로 갈때 거울반사에 의해 꺾이는 방향 동일하다. 위쪽방향,아래쪽방향으로 갈때 거울반사에 의해 꺾이는 방향 동일하다. - 대신 거울이 설치 될수있는 위치가 ' ! '라고 표현한것이므로 거울 설치 안하는 경우도 생각해줘야한다. 그냥 통과하는 경우도 고려해서 거울 설치 최소값을 구해야한다.! -현재 위치에서 바라보는 방향이 같다는 가정하에 ,이제것 설치한 거울 수가 적으면 큐..
JQuery 참고 https://opentutorials.org/course/1375/6630 라이브러리: 자주사용하는 로직을 재사용할 수 있도록 고안된 소프트웨어 Jquery-DOM을 내부에 감추고 보다 쉽게 웹 페이지를 조작할 수 있도록 돕는 도구이다. *DOMDocument Object Model로 웹페이지를 자바스크립트로 제어하기 위한 객체 모델을 의미 [라이브러리 다운방법]=>jquery 홈페이지에 들어가서 라이브러리 다운 받은후, 자바스크립트에 url 불러온 후(불러오는 코드 홈페이지에 있으므로 copy &paste) 소스 작성한다 //jquery를 통해 들어올 내용이 여기 적힌다. //jquery를 로드하는 방법 ! 항상 파란색글자 써진부분의 형식대로 쓰고 //내 생각을 담아 코딩할 부분은 빨간색글자 부..
AJAX 참고 : https://opentutorials.org/course/1375/6842 [목표] 자바스크립트를 이용해서 웹브라우저의 통신기능을 사용하는 방법을 알아보자. 그 중 AJAX의 특징이자 장점은 -서버와 클라이언트간의 데이터를 주고 받는 형식이다 - JSON과 페이지 리로드 없이 웹페이지의 내용을 변경할수 있다 - 웹애플리케이션을 구축하는데 중요하다. Ajax는 Asynchronous JavaScript and XML의 약자= 자바스크립트를 이용해서 비동기적으로 서버와 브라우저가 데이터를 주고 받는 방식을 의미이 때 사용하는 API가 XMLHttpRequest이다. 현재 상태를 확인하는 xmlhttpRegqeust 객체의 이벤트핸들러: onreadystatechange()이걸 이용해서 서버쪽을 몰..
modbus 통신 중 자주 생기는 에러 regs = self.con.read_holding_registers(self.Start, self.End) #ad_value는 그냥 읽을 인덱스가 담긴 변수임 num = regs[ad_value] modbus통신을 통해 register의 값을 읽으려 할때마다 .. 자주 발생되는 에러가 있다. TypeError: 'NoneType' object is not subscriptable 이에러의 원인은 일반적으로 " 'SomeType'object is subscriptable not errors '는 해당 기능이없는 객체의 색인을 생성하려고 시도했음을 의미한다고 한다. 예시>my_var = None x = my_var[0] 참고 https://www.reddit.com/r/learnpython/comments..
Python list,dictionary #리스트를 dictionary안에 추가할때 이용,, self.name은 현재 리스트 dict(zip(range(len(self.name)), self.name)) dict(zip(range(len(self.mag)), self.mag)) dict(zip(range(len(self.ad)), self.ad)) dict(zip(range(len(self.type)), self.type)) # 딕셔너리에 리스트의 값 담기 dic_list=[] for idx, val in enumerate(self.data): dic = {} dic[self.name[idx]] = val list(zip(range(len(dic)),dic)) dic_list.append(dic)
Python dictionry에 list추가 및 csv파일 읽기 ''' 리스트에는 .append() 메소드를 사용해서 새로운 요소를 추가할 수 있지만 튜플은 불가능하다. 리스트와 튜플의 기술적 차이점은 불변성에 있다. 리스트는 가변적(mutable, 변경 가능)이며 튜플은 불변적(immutable, 변경 불가)이다. 이 특징이 파이썬 언어에서 둘을 구분하는 유일한 차이점이다. ''' import csv f = open('FilteringData.csv', 'r', encoding='EUC-KR') rdr = csv.reader(f) #리스트생성 name =[] mag=[] ad=[] type=[] #colum으로 [0]// [1]//[2] ... 한줄씩 뽑기가능 for line in rdr: if line[0]=="PCS": name.append(line[1]) #리..