정처기 프로그래밍 언어 활용 문법 정리

minm·2025년 4월 14일

정보처리기사

목록 보기
1/8
post-thumbnail

8진수를 10진수로 변환

345(8)

  • 첫번째 자리 : 3 x 8^2 = 3 x 64 = 192
  • 두번째 자리 : 4 x 8^1 = 4 x 8 = 32
  • 세번째 자리 : 4 x 8^0 = 4 x 1 = 4
    총합 192+32+5 = 229(10)

16진수를 10진수로 변환

1AB(16)
1 x 16^2 = 256
A(10) x 16^1 = 160
B(11) x 1 = 11
256+160+11 = 427(10)

2진수를 10진수로 변환

10100(2)

  • 첫번째 자리 : 1 x 2^4 = 16
  • 두번째 자리 : 0 x 2^3 = 0
  • 세번째 자리 : 1 x 2^2 = 4
  • 네번째 자리 : 0 x 2^1 = 0
  • 다섯번째 자리 : 0 x 2^0 = 0
    16+4 = 20(10)

연산자 우선순위

단항연산자 ! ~ ++ -- size of
산술연산자 / % + -
시프트연산자 << >>
관계연산자 < <= >= > == !=
비트연산자 & ^ |
논리연산자 && ||
조건연산자 ? :
대입연산자 = += -=
= /= %= <<= >>=
순서연산자 .


자료형 크기


Java 향상된 반복문

for(String str:arr){
	System.out.println(str); 
}
for(int i=0; i<arr.length; i++){
	System.out.println(arr[i]);
}

C언어 포인터

char *s = "gilbut"

for (int i=0; i<6; i+=2){
	printf("%c, ", s[i]);
    printf("%c, ", *(s+i));
    printf("%s, ", s+i);
}

풀이

i = 0 ) s+i = g   *(s+i) = g  s+i = gilbut
i = 2 ) s+i = l   *(s+i) = l  s+i = lbut
i = 4 ) s+i = u   *(s+i) = u  s+i = ut


람다식

  • 어떤 문제를 해결하기 위한 과정을 수학식으로 표현한 것
  • 프로그래밍 언어에서 람다식은 수학적 연산을 수행하는 메소드 간소화

lambda 변수명 : 수학식

  • 변수명: 인수로 전달받은 값을 저장할 변수의 이름 지정
  • 수학식: 수행할 연산을 하나의 식으로 풀어 입력
def func(x):
	return x * x - 3
print(func(10))
func = lambda x : x * x - 3
print(func(10))

python - 딕셔너리

  • 딕셔너리는 연관된 값을 묶어 저장하는 용도로 사용
  • 리스트와 달리 딕셔너리는 사용자가 원하는 값을 키로 지정해 사용
  • 딕셔너리에 접근할 때는 딕셔너리 뒤에 대괄호([])를 사용하며, 대괄호 안에 키를 지정한다.
  • 중복된 키는 허용안함!★
    딕셔너리명 = {키1: 값1, 키2: 값2, 키3: 값3}
    딕셔너리명 = dict({키1: 값1, 키2: 값2, 키3: 값3})

python - 투플

  • 투플은 직접적인 원소 변경 불가하다.
  • 투플을 만들 때 주의사항은 1개의 데이터만 가질 때에 무조건 , 붙여줘야 함 (1,) 안 그러면 타입형태로 선언된다.
tuple1 = (1, 2, 3)
tuple2 = 1, 2, 3  

tuple3 = (1,)
tuple4 = (1)  

python - slice

range(최종값) 0에서 최종값 -1까지 연속된 숫자 생성
range(초기값, 최종값) 초기값 ~ 최종값 -1
range(초기값, 최종값, 증가값) 초기값 ~ 최종값-1 증가값 증가 및 감소

python - 슬라이스

객체명[:] 또는 객체명[::] 객체의 모든 요소 반환
객체명[초기위치:] 초기위치에서 마지막위치까지
객체명[:최종위치] 객체의 0번째 위치에서 최종위치 -1까지
객체명[::증가값] 객체의 0번째 위치에서 마지막 위치까지 증가값만큼 증가하며 반환


python - 리스트 관련 주요 메서드

메서드설명중복 검사
index(값)값이 처음 등장하는 인덱스 반환✅ O
count(값)값이 몇 개 들어 있는지 반환✅ O
sort()오름차순 정렬 (reverse=True로 내림차순)❌ X
copy()리스트 복사 (얕은 복사)-
pop()마지막 요소 삭제하고 반환-
append(값)리스트 끝에 값 추가❌ X
extend([값1, 값2])리스트 끝에 여러 값 추가❌ X
len()리스트 길이 반환-
push()❌ 존재하지 않음. 대신 append() 사용❌ X

set 메서드 (중복 자동 제거 O)

중복을 막고싶다면 set() 이용

s = set()
s.add(1)
s.add(1)
print(s)  # {1}
메서드설명중복 검사
add(값)집합에 값 하나 추가✅ O
update(이터러블)여러 값을 한 번에 추가✅ O

스크립트 언어: HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 언어

자바스크립트 언어: 웹 페이지 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어

쉘스크립트: 쉘에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어


Python 활용

print(..., end=...)

print("Hello", end=" ")
print("World")

print(..., ..., sep=...)

print("Python", "Java", "C", sep=", ")
Python, Java, C

input(...).split(...)

data = input("이름과 나이를 입력하세요: ").split()
# 입력: Kim 23
print(data)
['Kim', '23']

아스키코드

대문자 A-Z : 65~90
소문자 a-z : 97~122


기타 표준 입출력 함수

입력

getchar() : 키보드로 한 문자를 입력받아 변수에 저장하는 함수
gets() : 키보드로 문자열을 입력받아 변수에 저장, enter를 누르기 전까지 하나의 문자열로 저장

출력

putchar() : 인수로 주어진 한 문자를 화면에 출력하는 함수
puts() : 인수로 주어진 문자열을 화면에 출력한 후, 커서를 자동으로 다음 줄 앞으로 이동


JAVA 형변환


JAVA 제네릭

제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미

클래스 및 인터페이스 제네릭 타입 선언

public class ClassName <T> { ... }
public interface InterfaceName <T> { ... }
public class Main {
	public static void main(String[] args) {
		ClassName<Student> a = new ClassName<Student>();
	}
}

제네릭 메서드 사용방법

class ClassName<E> {
	
	private E element;	// 제네릭 타입 변수
	
	void set(E element) {	// 제네릭 파라미터 메소드
		this.element = element;
	}
	
	E get() {	// 제네릭 타입 반환 메소드
		return element;
	}
    
    <T> T genericMethod(T o) {	// 제네릭 메소드
		return o;
	}
	
}
 
class Main {
	public static void main(String[] args) {
		
		ClassName<String> a = new ClassName<String>();
		ClassName<Integer> b = new ClassName<Integer>();
		
		a.set("10");
		b.set(10);
	
		System.out.println("a data : " + a.get());
		// 반환된 변수의 타입 출력 
		System.out.println("a E Type : " + a.get().getClass().getName());
		
		System.out.println();
		System.out.println("b data : " + b.get());
		// 반환된 변수의 타입 출력 
		System.out.println("b E Type : " + b.get().getClass().getName());
		
        
        // 제네릭 메소드 Integer
		System.out.println("<T> returnType : " + a.genericMethod(3).getClass().getName());
		
		// 제네릭 메소드 String
		System.out.println("<T> returnType : " + a.genericMethod("ABCD").getClass().getName());
		
		// 제네릭 메소드 ClassName b
		System.out.println("<T> returnType : " + a.genericMethod(b).getClass().getName());
	}
}

0개의 댓글