본문 바로가기

📚Languages5

[Python3 문법] format을 이용해서 소수점 이하 자릿수 표현하기 새벽에 알고리즘 문제 풀어보다가 시간초과 나서 머리 좀 식힐 겸, 파이썬 문법 연습 좀 할 겸 백준에서 안 풀어본 브론즈 문제 중에 하나를 골라서 풀어보았다. 4344. 평균은 넘겠지 (문제 링크: www.acmicpc.net/problem/4344)라는 아주 기초적인 알고리즘 문제였다. 쉬운 문제였지만 파이썬 초보인 나에게 공부할 만한 내용이 있었다. 1. 반올림 2. 소수점 이하 3번째 자리까지 출력하기 1. 반올림 보통 반올림, 올림, 내림의 경우 다른 언어에서도 round(반올림), ceil(올림), floor(내림)를 사용하고, 찾아보니 파이썬에서도 같은 방법을 사용하면 된다. 다만, round 함수의 경우 내장되어 있지만, ceil과 floor는 import math를 하고 math.ceil과.. 2020. 10. 24.
[Python3 문법] packing(패킹)과 unpacking(언패킹)의 개념과 객체 요소 출력하기 (서론👩🏻) 수업을 듣다가 2차원 배열의 입력을 제대로 받았는지 확인하는 과정에서 이 unpacking이라는 개념을 새롭게 알게 된 김에 공부해봤다. 쌍으로 묶여져 있는 요소들을 따로따로 빼내는 역할을 한다고 생각하면 된다고 하고, 또 자주 쓰이는 개념이라고 해서 알아보려고 한다. 파이썬에서는 packing(패킹)과 unpacking(언패킹)이라는 개념이 존재한다. 말 그대로 packing(패킹)은 포장되어있는 상태고, unpacking(언패킹)은 그 포장을 풀어헤치는 것이라고 생각하면 좀 더 쉬울 것 같다. 인덱스로 접근이 가능한 iterable 자료형(List, Tuple, Dictionary, Set, Map 등)의 요소들을 하나하나씩 unpacking, 즉, 풀어헤치는 것이다. unpacking은.. 2020. 10. 24.
[Python3 문법] list(리스트) 내의 최댓값과 그때의 index(인덱스) 값 구하기 (feat.enumerate) 배열 이름이 list라고 할 때, max(list) 이건 배열 원소 중 최댓값을 구하는 것이다. list.index(max(list)) 그리고 이건 배열 원소 중 최댓값의 index(인덱스)를 구하는 것이다. 다만, 최댓값이 여러 개일 경우에는 가장 앞쪽에 있는, 즉, index의 크기가 가장 작은 값이 나온다. 한 걸음 더 나아가서, list.index를 활용하면 최댓값이 여러 개일 경우 가장 앞쪽에 있는 index만 출력된다고 했다. 그런데 나는 최댓값이 여러 개 존재할 경우 그때의 index들을 다 확인하고 싶다면 어떻게 해야할까? enumerate를 활용하면 된다. m = max(list) [i for i,v in enumerate(list) if v == m] 위 문서에도 설명이 잘 나와있지만,.. 2020. 10. 21.
[JAVA 에러] StringTokenizer와 nextToken() 사용 중 발생한 NoSuchElementException 평화롭게 BOJ 사이트에서 문제를 풀고 있었다. 그러던 중 인접리스트의 원소들을 채우는 과정에서 부득이하게 V2 = Integer.parseInt(st.nextToken()); 라는 코드를 두 번 작성했다. 위에서 한 번 받은 후에 그걸 사용하고, 밑에서 다시 받아서 for문이 다시 시작되면 바로 사용하려고 했던건데 오류가 났다. 그리고 그 오류의 내용은 NoSuchElementException였다. (직역하면 그런 원소 없다?!🤔) 구글링을 해본 결과 하나의 값에 대해서 next가 두 번 나오게 되면 발생하는 오류라는 정보를 얻었다. 나는 StringTokenizer로 입력받은 문자열을 토큰으로 자르고, nextToken()를 이용해서 V2 = Integer.parseInt(st.nextToken()).. 2020. 5. 15.
[JAVA 문법] 입력: BufferedReader와 Scanner의 속도 차이😲 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 며칠 전 백준 알고리즘 사이트를 들어갔다가 예전에 틀린 채로 남아있는 브론즈 문제가 있길래 풀었다. 문제는 매우 간단한 최소, 최대 관련 문제였는데 순간 호기심이 생겨서 입력을 한 번은 Scanner로, 또 한 번은 BufferedReader로 받아서 속도 차이를 확인해보았다. (나는 평소에 BufferedReader를 쓰는데, 이게 더 빠르다고는 했지만 얼마나.. 2020. 5. 9.