🧩 Programming Languages 44

자바 문법 정리

코딩테스트 문제를 풀면서 새롭게 알게되는 Java의 문법을 정리해보려고한다. 0. 기타식 ? 값1 : 값2: 식이 True라면 값1 을, False라면 값2 를 1. 수식Math.sqrt(숫자): 루트 Math.pow(x, y): x의 y제곱 -> *반환 타입은 double* z.B. Math.pow(2,3) -> 8.0 n : n을 이진수로 변환했을 때 t만큼 왼쪽으로 이동즉, n * (2의 t제곱)2. 문자열문자열1.contains(문자열2): 문자열1 안에 문자열2가 포함되었는지 문자열.length(): 문자열 길이 String[] 배열 = 문자열.split("구분자");: 구분자를 기준으로 문자열을 나눈다. 만약 .split("") 면 한 글자씩 나눈다.특수 문자(예: . | * 등)을 쓸 때는..

백준 8958번(bronze 2) : OX퀴즈 - 향상된 for문 적용 (for-each)

https://www.acmicpc.net/problem/8958 문제"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다."OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력각 테스트 케이스마다 점수를 출력한다. 예시// input3OOXXOXX..

12954. x만큼 간격이 있는 n개의 숫자

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 1차 답안 제출 ]class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i = 0; i    [ 2차 답안 제출 ]class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i = 0; i    [ 3차 답안 제출 ] 기본적으로 x와 i + 1은 int 타입이기 때문에 두 ..

백준 2023번(gold 5) : 신기한 소수 - DFS

https://www.acmicpc.net/problem/2023 문제 : 왼쪽부터 1자리, 2자리, 3자리, 4자리 모두 소수인 수를 찾는 문제z.B. 73317 소수73 소수733 소수7331 소수 1. 입력import syssys.setrecursionlimit(10000)input = sys.stdin.readlinen = int(input()) sys.setrecursionlimit(10000): 파이썬의 재귀 깊이 한도를 10,000으로 설정DFS를 재귀적으로 구현하기 때문에, 깊이 제한을 늘려서 재귀 호출이 깊게 발생할 때도 프로그램이 중단되지 않도록 한다.  2. 소수 구하는 함수def isPrime(num): for i in range(2, int(num / 2 + 1)): if num..

백준 2745번(bronze 2) : 진법 변환

https://www.acmicpc.net/problem/2745 [ 문제 ]B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35  ① nums 라는 변수에 0~9 와 A~Z 값을 저장한다.nums = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 이러면 본인의 값은 인덱스 번호와 동일하기 때문에 답을 도출하는데 수월할 것이다.  ② 입력n, b = input().split()b = int(b)N = len(n)sum = 0  ③ 진법 계산 바로 머릿속에 구현..

백준 2750번(bronze 2) : 수 정렬하기 (2차)

https://www.acmicpc.net/problem/2750 알고리즘 공부는 꾸준히 해야한다는 것을 실감하게 된다.복습 차 이전에 풀었던 문제를 풀려고 한다.  백준 2750번(bronze 2) : 수 정렬하기2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpentwicklerin.tistory.com 정렬 카테고리에 있는 문제이기 때문에 삽입 정렬 혹은 버블 정렬로 풀이해보는 것이 출제의도였을텐데과거의 나는 그냥 파이썬의 편리한 sort 함수를 사용하였다. (반성하자...!)그래서 이번에는 정렬 알고리즘을 활용하여 문제를..

백준 1157번(bronze 1) : 단어 공부

https://www.acmicpc.net/problem/1157 word = input().upper()words = list(set(word))counts= []for i in words: cnt = word.count counts.append(cnt(i))if counts.count(max(counts)) > 1: print("?")else: print(words[(counts.index(max(counts)))]) 1. upper : 대소문자를 구분없이 카운트 하므로 애초에 처음부터 입력받을 때 대문자로 변환한다.2. set : 비교를 위해 중복 없는 리스트 words 를 생성해준다.3. for 문 : 얼마나 중복되었는지 세고 counts 리스트에 추가한다.4. if 문 : 만약 중복된 횟..

Python Grammar

List  answer = [1, 2, 3, 4, 5]  1. 리스트 요소 중 최소값, 최대값 알아내기max(answer)min(answer) 2. 인덱스 번호 알아내기answer.index(요소) 3. 요소 교환answer[a], answer[b] = answer[b], answer[a] 4. 중복제거answer = list(set(answer)) 5. 정렬words.sort() 6. (문자열 리스트) 글자수 기준으로 내림차순words.sort(key = len)  Prime Number   1. 소수 판별하여 리스트에 저장하기M = int(input())N = int(input())result = []for i in range(M, N+1): if i   Grid   1. n x n 만들기gri..

Python Grammar - Output

List  answer = [1, 2, 3, 4] 0. 기본print(answer)// Output: [1, 2, 3, 4] 1. 공백을 두어 하나씩 출력하기print(*answer)// Output: 1 2 3 4 2-1 여러 줄에 하나씩 출력하기 (문자)print("\n".join(answer))# Output :# "1"# "2"# "3"# "4" 2-2. 여러 줄에 하나씩 출력하기 (숫자) print("\n".join(map(str, answer)))# Output :# "1"# "2"# "3"# "4"# 혹은[print(num) for num in answer]# Output :# 1# 2# 3# 4 3. 원하는 형식으로 출력하기result = [1, 2, 3]x = 6# 원하는 출력형식 : 6..