Loading...
2023. 4. 3. 00:41

자바 HashMap - 개발자가 정의한 class를 key로 만드는 방법

자바의 HashMap은 파이썬의 dict처럼, 고유한 key와 대응하는 value를 하나의 쌍으로 하여, 저장하는 자료구조 일반적으로 key를 문자열, 정수값으로 사용하지만, 필요에 따라 특정한 class를 key로 하고 싶을 수 있다 시험에 아래와 같은 Point라는 클래스를 key로 하고 싶었는데... class Point { int x,y; public Point(int x, int y) { this.x = x; this.y = y; } } 이걸 HashMap의 key로 사용해서 자료를 관리해볼려 했는데.. 원하는대로 동작을 안하더라고? 그립습니다 파이썬님 자연스럽게 두 객체 p1, p가 같다는 것은 x,y가 서로 같다는 것인데.. 문제는 key로 사용한 p1의 주소와 get을 하면서 넣은 p의 주..

자바 자료구조4 -HashMap과 HashSet-

1. HashMap 해싱을 기반으로 데이터들을 관리해주는 자료구조 파이썬에서 dict와 대응된다 HashMap은 (key,value) 쌍 형태로 들어가 있어서, key와 그 key에 따른 value값을 동시에 저장하는 형태 따라서 HashMap의 삽입, 삭제, 탐색 등 모든 함수의 시간복잡도는 O(1)이다. HashMap은 TreeMap보다 속도가 빠르며, 값 자체에만 관심이 있지, 그 순서에는 관심이 없는 자료구조 HashMap 사용을 위해서 import java.util.HashMap; HashMap (name) = new HashMap(); 형태의 선언이 필요하다. K,V는 key와 value에 해당하는 타입이다. import java.util.HashMap; public class Main { p..

프로그래밍으로 뱀을 만드는 방법? -뱀-

1. 문제 3190번: 뱀 (acmicpc.net) 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 규칙에 따라 움직이는 뱀의 이동경로가 주어질때, 언제 게임이 끝나는지 구하는 프로그램을 작성 2. 풀이 뱀이 이동할때, 먼저 머리를 다음 칸에 위치시키고 사과가 있으면 사과를 먹고 그대로 두거나 사과가 없으면 꼬리가 위치한 칸을 비우므로 deque를 이용해서 뱀의 자취를 표현할 수 있을 것 같다 꼬리를 비울때는 deque의 0번째 원소를 제거하고, 머리를 넣을때는 deque의 마지막 원소를 넣어주고 ----------..

2022. 11. 8. 01:08

조금 더 어려운 시뮬레이션 연습하기 -미세먼지 안녕!-

1. 문제 17144번: 미세먼지 안녕! (acmicpc.net) 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 맵에 배치된 미세먼지가 조건에 따라 확산하고, 설치된 공기청정기가 미세먼지를 흡수할때, 일정시간이 지난 후 남아있는 미세먼지의 양을 구하는 문제 2. 풀이 역시 제시된 순서에 맞게 성실하게 시뮬레이션 구현하면 되겠다 역시 가장 기본은 미세먼지와 공기청정기의 위치를 찾아야겠지 r,c,t = map(int,stdin.readline().split()) maps = [list(map(int,stdin...

2022. 8. 1. 01:35

딕셔너리의 메소드

1. 딕셔너리(dictionary) key,value 쌍으로 이루어진 자료형 key는 변경불가능한 데이터인 string, integer, float, boolean, tuple, range 등 만 가능 key로 리스트는 불가능하고 튜플은 가능 그러니까 key는 직접적으로 이름 변경이 불가능하고 삭제하고 새로 만들든지 간접적으로 변경 가능 key의 value는 어떠한 형태든 가능하다 3.7부터는 key의 입력 순서를 보존해줌 이를 이용하면 key를 정렬할 수도 있음 근데 주피터노트북에서 print말고 그냥 출력하면 순서가 항상 정렬된것처럼 보이네 2. 딕셔너리의 여러가지 메소드 자주 사용하는 것은 역시 d.keys(), d.values(), d.items() 가끔 사용하는 것은 d.get(k,v) 여기서 ..

2022. 4. 6. 01:31

파이썬 중복을 제거하는 set 잘 활용하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신..