[백준][Java] 1822번 차집합
·
백준/이분 탐색
문제https://www.acmicpc.net/problem/1822 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); int N = input[0]; int M = input[1]; in..
[백준][Java] 13144번 List of Unique Numbers
·
백준/투 포인터
문제https://www.acmicpc.net/problem/13144 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] nums = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); int ..
[백준][Python] 1205번 등수 구하기
·
백준/구현
코드def solution(): # 하지만, 같은 점수가 있을 때는 그러한 점수의 등수 중에 가장 작은 등수가 된다. ## 90, 90, 90인 3명이 존재할 경우 가장 높은 등수를 적어준다. n, taesoo, p = map(int, input().split()) if n > 0: scores = list(map(int, input().split())) else: print(1) return # 만약, 랭킹 리스트가 꽉 차있을 때, 새 점수가 이전 점수보다 더 좋을 때만 점수가 바뀐다. ## 이 말은 태수의 점수가 랭킹의 가장 낮은 점수보다 무조건 높아야한다. # 출력 등수보다 적은 참여자가 존재한다면. if n = ..
[백준][Python] 1976번 여행 가자
·
백준/분리 집합
코드def solution(): n = int(input()) m = int(input()) global parent parent = [i for i in range(n)] for i in range(n): row = list(map(int, input().split())) for j in range(n): if row[j] == 1: union(i, j) plan = list(map(int, input().split())) root = find_parent(plan[0] - 1) for i in range(m): if find_parent(plan[i] - 1) != root: print("NO") return print..
[Java] 함수형 인터페이스 완전 정복 – 제네릭, 타겟 타입, 내장 함수형 인터페이스까지
·
Dev Lang/Java
Java 함수형 인터페이스 완전 정복 – 제네릭, 타겟 타입, 내장 함수형 인터페이스까지Java에서 함수형 프로그래밍의 핵심 요소는 단연코 함수형 인터페이스(Functional Interface) 입니다. 람다는 함수형 인터페이스를 통해 타입 추론, 호출 규칙, 문법적 간결성 등을 얻게 되며, Java 8 이후 다양한 내장 함수형 인터페이스도 함께 제공됩니다.이번 글에서는 다음의 7가지 주제를 중심으로 함수형 인터페이스를 깊이 있게 다룹니다. 1. 함수형 인터페이스와 제네릭 1 – 람다의 재사용성과 타입 유연성 확보함수형 인터페이스란?함수형 인터페이스(Functional Interface) 는 추상 메서드가 단 하나만 존재하는 인터페이스입니다. @FunctionalInterface 어노테이션을 붙여 의..
[백준][Python] 1027번 고층 건물
·
백준/구현
코드import sysdef can_see(x1, y1, x2, y2, x3, y3): giulgi = (y2 - y1) / (x2 - x1) return giulgi * (x3 - x1) + y1 > y3 def solution(): n = int(input()) count = [0 for _ in range(n)] li = list(map(int, input().split())) # n은 50보다 같거나 작은 자연수 n^2 가능할듯 for i in range(n - 1): for j in range(i + 1, n): flag = True ## 사이에 접하거나 막히는 건물이 있는지 확인 for s in range(i + 1, j): if..
[운영체제] 면접을 대비하는 뮤텍스와 세마포어의 차이
·
운영체제
뮤텍스(Mutex) vs 세마포어(Semaphore)핵심은 소유권과 접근 수량동시성 제어(concurrency control)는 다중 스레드 또는 다중 프로세스 환경에서 예측 가능한 동작을 보장하기 위한 핵심 과제입니다. 그 중에서도 뮤텍스와 세마포어는 고전적인 동기화 도구지만, 비슷해 보이는 개념 때문에 자주 혼동됩니다. 많은 책과 문서가 "락을 건다"는 수준에서 설명을 멈추지만, 실전에서는 더 분명한 구분이 필요합니다. 이 글에서는 소유권(Ownership) 과 접근 수량(Concurrency Count) 이라는 관점을 기준으로 뮤텍스와 세마포어를 명확히 구분해 설명합니다. 1. 왜 소유권과 접근 수량으로 구분해야 하는가?실무에서는 단순히 "동시 접근을 막기 위해 락을 건다"는 말로 설명이 부족합니..
[백준][Python] 202920번 영단어 암기는 어려워
·
백준/구현
코드import sysfrom collections import defaultdictinput = sys.stdin.readlinedef solution(): ## 1. 자주 나오는 언어일수록 앞에 배치 ## 2. 해당 언어의 길이가 길수록 앞에 배치 ## 3. 알파벳 사전순 answer = [] appear = defaultdict(int) n, m = map(int, input().split()) for _ in range(n): word = input().strip() if len(word) >= m: appear[word] += 1 sorted_li = sorted(appear.items(), key=lambda x: (-x[1], -len(x[0]), x[0..
개발자 성현
개발새발 블로그