본문 바로가기

분류 전체보기45

[BOJ] [JAVA] 18870번 좌표 압축 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 좌표 압축 문제,,, 주어지는 배열에 대해서 각 배열의 원소를 배열 내의 ranking으로 바꿔서 출력하는 문제이다,,, 처음 생각한 방식은 배열을 입력받고,,, 배열을 set로 다시 받아서 중복 없애고,,, 다시 배열로 변환해서 오름차순 정렬하고,,, 원래 배열에서 for문 돌려서 set애서 변환된 배열에서 원소를 찾아서 index를 뽑아내는 방식이었는데 시간초과됐다,,, 답은 HashMap을 사용하는 거였다!.. 2024. 1. 6.
[BOJ] [JAVA] 10815번 숫자 카드 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 이진 탐색을 이용한 문제였다. 이진 탐색을 말로만 들었지 써본 건 처음이라 살짝 헷갈렸따! 신기해서 올려봤다. import java.util.*; import java.io.*; public class Main { static int [] card; public static void main(String [] args) throws IOException { BufferedReader br = new BufferedReader(new .. 2024. 1. 6.
[Python] [3] 텍스트 파일(끝말잇기 게임) 1. 끝말잇기 텍스트 파일을 다루는 방법을 배워봤다. txt 파일을 파이썬 파일과 같은 곳에 두면 텍스트 파일의 내용을 사용할 수 있다! # 끝말잇기 게임 import random words = open('korean_words.txt', encoding='utf-8').read().split() # txt 파일에는 1805개의 단어가 들어있다 def isOkay(word): # 두음 법칙을 고려(?)했다 s1 = '냥녀뇨니라락란래량려렷로론뢰료루류륜리' s2 = '양여요이나낙난내양여엿노논뇌요누유윤이' tt = str.maketrans(s1, s2) return word[-1:].translate(tt) def game(): start = random.choice(words) # 상대가 먼저 시작 word.. 2023. 12. 29.
[Programmers][Python] 소수 찾기 1. 시간 초과 n 이하의 소수 개수를 찾는 문제이다. n이 1000000 이하의 자연수라 처음 한 방법은 시간초과가 났다. list를 계속 만들어서 그런가? def solution(n): prime = list(range(2, n + 1)) for i in range(2, n + 1): if i in prime: prime = list(filter(lambda x : x % i != 0 or x == i, prime)) return len(prime) # 시간 초과 2. 정답 bool list를 만들고 에라토스테네스의 체를 이용하여 풀었다. prime의 i번째 원소가 수 i이고, prime[i]가 true이면 i는 소수이다. 만약 i가 소수라면 j = 2 * i, 3 * i, 4* i ..... 2023. 12. 29.