본문 바로가기

코린이24

[BOJ] 3052. 나머지 (Python3) 문제 링크 / level: Bronze II www.acmicpc.net/problem/3052 3052번: 나머지 39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다. www.acmicpc.net 배열에 관한 문제인데, 여러 가지를 연습해볼 수 있을 것 같아서 도전해봤다. 문제를 풀어본 결과 몇 가지 공부포인트가 있었다. 1. 배열을 선언하고, 길이를 지정하고, 10개의 데이터를 받는 과정 2. 나머지 연산 (이건 Java에서의 연산과 같다.) nums = [0] * 10 for i in range(10): nums[i] = int(input()) % 42 내가 .. 2020. 9. 4.
[BOJ] 2588. 곱셈 (Python3) 문제 링크 / level: Bronze IV https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 👍이 문제에서 새로 익힌 기술: Extended Slices 15 Extended Slices 15 Extended Slices Ever since Python 1.4, the slicing syntax has supported an optional third ``step'' or ``stride'' argument. For example, these are all legal Python syntax: L[1:10:2], L[:-1:1], L[::-1]. T.. 2020. 9. 1.
[BOJ] 1000. A+B (Python3) 문제 링크 / level: Bronze V https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net Python은 학부 때 논문 쓰면서 데이터 분석용으로만 썼었는데, 코테용으로 준비를 시작해보기로 했다. 아주 간단한 입출력 문제이지만 나에게는 Python으로 푼 첫 알고리즘 문제니까 기념으로 글을 적어본다. 얼른 Python 문법에 익숙해져서 빠르게 알고리즘 구현 단계까지 넘어가야겠다. Python에서 입력받는 두 가지 방법: 1. 공백으로 구분될 때 -> input().split()의 형태로 받는다. 2. 줄바꿈으로 구분될 때 -> input()의 형태로 받는다. 진짜 .. 2020. 9. 1.
[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.
[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten (Java) 문제 링크 / level: D3 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh&categoryId=AV139KOaABgCFAYh&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 내가 생각한 풀이 누워있다가 갑자기 풀어봤다. 이번에도 S/W 문제해결 시리즈다. 한동안 알고리즘 문제 많이 안 풀다가 푸니까 또 재밌네🤔 문제의 핵심은 1. 상자의 높이만 알면 된다. 2. 덤프 횟수만큼 반복해서 매번 최고점과 최저점을 구한다. 그리고 그때의 간격을 구한다. 만약 0이.. 2020. 5. 9.
[BOJ] 4963. 섬의 개수 (Java) 문제 링크 / level: Silver I https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 www.acmicpc.net 내가 생각한 풀이 이 문제도 다른 사람이 만들어 둔 문제집에 있었던 문제다. 예전에 추천받았던 .. 2020. 4. 20.
[BOJ] 1743. 음식물 피하기 (Java) 문제 링크 / level: Silver I https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 문제 코레스코 콘도미니엄 8층은 학생들이 3끼의 식사를 해결하는 공간이다. 그러나 몇몇 비양심적인 학생들의 만행으로 음식물이 통로 중간 중간에 떨어져 있다. 이러한 음식물들은 근처에 있는 것끼리 뭉치게 돼서 큰 음식물 쓰레기가 된다. 이 문제를 출제한 선생님은 개인적으로 이러한 음식물을 실내화에 묻히는 것을 정말 진정으로 싫어한다. 참고로 우리가 구해야 할 답은 이 문제를 낸 조교를 맞추는 것이 아니다. 통로에 떨어진 음식물을 피해가기란 쉬운 일이 아 www.acmicpc.net 내가 생각한 풀이 오래간만에 BFS 문제, 특히 flood fill 문제를 보게 되었다. 반.. 2020. 4. 19.
[BOJ] 2193. 이친수 (Java) 문제 링크 / level: Silver III https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net 내가 생각한 풀이 동적 계획법(DP) 문제를 하나만 더 풀어보자 싶어서 건드린 문제. 이것도.. 2020. 4. 19.